3

Nicholas C. Zakas 所著的“高性能 JavaScript”一书的第 6 章“响应式接口”对 Timer Precision 做了以下说明:

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

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

4

2 回答 2

3

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

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

于 2012-10-11T16:24:51.557 回答
0

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

于 2012-10-11T16:18:57.407 回答