我有一个脚本在 前景 标签,启动(专用)web worker。现在我看到 setTimeout(xxx, 100)
在网页工作者被限制为每秒不超过一次而不是按要求每秒10次。我在谷歌上搜索过非活动标签页的这种限制,但是否有任何文档对 Web Worker 有同样的规定?我已经在Chrome和Firefox中检查过了。
虽然没有真正的规范来说明这种节流行为,但即使是 他们是允许的:
- 可选地,再等待一个实施定义的时间长度。
这样做的目的是让用户代理可以根据需要垫高超时时间,以优化设备的功耗。例如,一些处理器具有低功耗模式,其中计时器的颗粒度降低;在这样的平台上,用户代理可以减慢计时器的速度以适应这个时间表,而不是要求处理器使用更精确的模式及其相关的更高的功耗。
Chrome浏览器有 本文件 从2017年开始,他们在那里揭露了他们计划如何处理后台标签。
从那里我们可以看到一个 关于网络工作者的计划部分:
节流网络工作者(~2018)
我们目前正在对网络工作者进行仪表,以更好地了解他们的CPU使用情况和功率影响。我们也考虑对网络工作者进行节制,体贴将破损内容降到最低。
所以,这被安排在2018年,并 这里是问题跟踪它的部署.
还应注意到,目前工作组正在积极讨论如何执行《公约》。页面生命周期API. 这个API将暴露一些事件,和一个新的 "冻结 "状态,对于我们感兴趣的事情,它也应该是------。暂停工人的执行.