微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在未聚焦的标签中运行时的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讨论的技术,但我还没有改变自己尝试.

原文地址:https://www.jb51.cc/js/151564.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐