小编典典

Chrome:超时/间隔暂停在后台选项卡中?

all

setTimeout我正在测试使用此测试的准确性。现在我注意到(正如预期的那样)setTimeout不是很准确,但对于大多数电器来说并不是非常不准确。现在,如果我在
Chrome
中运行测试并让它在后台选项卡中运行(因此,切换到另一个选项卡并在那里浏览),返回测试并检查结果(如果测试完成)它们会发生巨大变化。看起来超时运行得慢了很多。在
FF4 或 IE9 中测试没有发生这种情况。

因此,看起来 Chrome 会在没有焦点的选项卡中暂停或至少减慢 javascript
的执行速度。在互联网上找不到太多关于该主题的内容。这意味着我们无法运行后台任务,例如使用 XHR
调用定期检查服务器,并且setInterval(我怀疑看到相同的行为setInterval,如果时间与我在一起,将编写测试)。

有没有人遇到过这个?这种暂停/减速是否有解决方法?你会称它为错误吗?我应该这样归档吗?


阅读 87

收藏
2022-08-29

共1个答案

小编典典

我最近问过这个问题,这是设计行为。When a tab is inactive, only at a maximum of once per second
the function is called. 这是代码更改

也许这会有所帮助:
当chrome中的标签不活动时,如何使SetInterval也可以工作?

TL;DR: 使用 Web Workers

2022-08-29