去年,Chrome 推出了一项功能,通过限制后台网页中的 JavaScript 计时器唤醒来延长电池寿命。
setTimeout(()=>{
console.log('done')
}, 1000)
上面的代码会在1秒后打印日志。但是当网页在后台时,它会在大约10秒后打印。会带来很多问题。
那么,有什么解决方案可以阻止 Chrome 限制我的计时器吗?
您可以尝试在窗口处于活动状态时加载脚本,但如果没有帮助,HackTimer.js是使用 Web Workers 的一个很好的解决方法。
如果您只是网站的维护者,则无法为最终用户更改此设置。
也就是说,如果您控制浏览器,则有一个标志可以禁用此功能 - 您可以在启动 Chrome 时使用该标志:
--disable-background-timer-throttling
这在 2019 年就已经成为可能,并被 Google 推荐用于自动化测试,请参阅此 Pull Request。