在未聚焦的标签中运行时的JavaScript性能

前端之家收集整理的这篇文章主要介绍了在未聚焦的标签中运行时的JavaScript性能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
看来,Chrome和Firefox *的最新版本有所改变,现在 Javascript的执行似乎不同,当它正在运行的选项卡不是当前的重点.

当我运行我的Javascript单元测试时,通常需要大约20秒才能完成,但现在,当该选项卡未被集中时,它需要超过2000秒.奇怪的是,每个测试的运行时间不受影响(大多数仍然是<10ms).我正在使用的测试运行器在运行每个测试之间添加一个setTimeout(0),以便浏览器在执行时不会被锁定,因此这似乎是可能的罪魁祸首. 有没有办法告诉Javascript引擎不是“不优先”那个选项卡呢?能够在后台运行我的测试是很好的,而不必看自己… *对不起,我不太在意,尝试安装旧版本,以便在发生这种情况时找到.至少现在,Firefox 5.0和Chrome 12正在发生.

解决方法

setTimeout和setInterval在未聚焦的选项卡中已经被限制在至少1000ms. Here是Bugzilla报告,提到它.而这里就是类似的 Chromium bug report.我相信在Firefox 5和Chrome从11版起就是这种情况.

根据MDN

In (Firefox 5.0 / Thunderbird 5.0) and
Chrome 11,timeouts are clamped to
firing no more often than once per
second (1000ms) in inactive tabs; see
bug 633421 for more information about
this in Mozilla or crbug.com/66078 for
details about this in Chrome.

至于绕过这个限制,你可以尝试在this article讨论的技术,但我还没有改变自己尝试.

猜你在找的JavaScript相关文章