最佳答案
我在用 这个测试测试 setTimeout
的准确性。现在我注意到(正如预期的那样) setTimeout
不是很精确,但是对于大多数电器来说并不是非常不精确。现在,如果我在 Chrome 中运行测试并让它在一个后台选项卡中运行(所以,切换到另一个选项卡并在那里浏览) ,返回到测试并检查结果(如果测试结束) ,它们将发生显著变化。看起来超时的速度慢了很多。在 FF4或 IE9测试中没有出现这种情况。
所以看起来 Chrome 在一个没有焦点的选项卡中暂停或者至少减慢了 javascript 的执行。在网上找不到这方面的资料。这将意味着我们不能运行后台任务,例如,使用 XHR 调用和 setInterval
在服务器上定期检查(我怀疑在 setInterval
上看到同样的行为,如果时间和我在一起,就会编写一个测试)。
有人遇到过这种情况吗?这种悬挂/减速有什么变通办法吗?你会称之为错误吗? 我应该这样归档吗?