Web Worker是否会节制setTimeout()setineval()?

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

我有一个脚本在 前景 标签,启动(专用)web worker。现在我看到 setTimeout(xxx, 100) 在网页工作者被限制为每秒不超过一次而不是按要求每秒10次。我在谷歌上搜索过非活动标签页的这种限制,但是否有任何文档对 Web Worker 有同样的规定?我已经在Chrome和Firefox中检查过了。

javascript settimeout setinterval web-worker
1个回答
1
投票

虽然没有真正的规范来说明这种节流行为,但即使是 他们是允许的:

  1. 可选地,再等待一个实施定义的时间长度。

这样做的目的是让用户代理可以根据需要垫高超时时间,以优化设备的功耗。例如,一些处理器具有低功耗模式,其中计时器的颗粒度降低;在这样的平台上,用户代理可以减慢计时器的速度以适应这个时间表,而不是要求处理器使用更精确的模式及其相关的更高的功耗。

Chrome浏览器有 本文件 从2017年开始,他们在那里揭露了他们计划如何处理后台标签。

从那里我们可以看到一个 关于网络工作者的计划部分:

节流网络工作者(~2018)

我们目前正在对网络工作者进行仪表,以更好地了解他们的CPU使用情况和功率影响。我们也考虑对网络工作者进行节制,体贴将破损内容降到最低。

所以,这被安排在2018年,并 这里是问题跟踪它的部署.

还应注意到,目前工作组正在积极讨论如何执行《公约》。页面生命周期API. 这个API将暴露一些事件,和一个新的 "冻结 "状态,对于我们感兴趣的事情,它也应该是------。暂停工人的执行.

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