您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

JavaScript为什么setTimeout(fn,0)有时有用?

JavaScript为什么setTimeout(fn,0)有时有用?

在问题中,存在以下竞争条件:

您的代码始终在这场比赛中取胜,并在浏览器就绪之前尝试设置下拉菜单,这意味着该错误将出现。

之所以存在这种竞争,是因为JavaScript具有与页面渲染共享的单个执行线程。实际上,运行JavaScript会阻止DOM的更新。

您的解决方法是:

setTimeout(callback, 0)

调用setTimeout一个回调,以及零作为第二个参数将安排回调运行 ,最短的延迟之后- 这将是10毫秒左右,当标签具有焦点和执行JavaScript的线程不是忙。

因此,OP的解决方案是将选定索引的设置延迟大约10ms。这为浏览器提供了初始化DOM的机会,从而修复了该错误

Internet Explorer的每个版本都表现出古怪的行为,因此有时需要这种解决方法。另外,它可能是OP代码库中的真正错误

javascript 2022/1/1 18:17:27 有553人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶