看来,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 举报,一经查实,本站将立刻删除。