当我的网页在后台时,如何防止计时器被Chrome限制?

问题描述 投票:0回答:2

去年,Chrome 推出了一项功能,通过限制后台网页中的 JavaScript 计时器唤醒来延长电池寿命

setTimeout(()=>{
  console.log('done')
}, 1000)

上面的代码会在1秒后打印日志。但是当网页在后台时,它会在大约10秒后打印。会带来很多问题。

那么,有什么解决方案可以阻止 Chrome 限制我的计时器吗?

javascript html google-chrome
2个回答
3
投票

您可以尝试在窗口处于活动状态时加载脚本,但如果没有帮助,HackTimer.js是使用 Web Workers 的一个很好的解决方法。


0
投票

如果您只是网站的维护者,则无法为最终用户更改此设置。

也就是说,如果您控制浏览器,则有一个标志可以禁用此功能 - 您可以在启动 Chrome 时使用该标志:

--disable-background-timer-throttling

这在 2019 年就已经成为可能,并被 Google 推荐用于自动化测试,请参阅此 Pull Request

© www.soinside.com 2019 - 2024. All rights reserved.