是否setTimeout(任务,0)在IE中导致问题?

时间:2012-10-11 16:12:49

标签: javascript internet-explorer

第6章“高性能JavaScript”的“响应式界面”由Nicholas C. Zakas撰写,关于Timer Precision的内容如下:

  

Windows系统上的计时器分辨率为15毫秒,这意味着   它会将定时器延迟15解释为0或15,具体取决于   系统时间最后一次更新时。设置定时器延迟更少   超过15可以导致Internet Explorer中的浏览器锁定,所以   建议的最小延迟是25毫秒(最终会延迟为   15或30)确保延迟至少15毫秒。

这里的“浏览器锁定”是什么意思?这是否意味着广泛使用的方法setTimeout(task, 0)将任务移动到UI线程队列的末尾可以使IE挂起?

2 个答案:

答案 0 :(得分:3)

setTimeout运行你的任务一次,我认为这不会导致锁定。

我对您的图书摘要的解释是,他指的是重复的执行,例如setInterval。如果你设置代码每0毫秒执行一次,那么,我可以看到IE有问题。

答案 1 :(得分:0)

我一直在使用它,不,我没有遇到任何问题。它允许浏览器为其渲染线程使用时隙,这在某些情况下实际上非常有用。