这可能与一个非常常见的问题相反:当您使用setInterval
在一个选项卡上切换到另一个选项卡时,间隔会显着缩短(即减慢)。这对于音频计时来说非常明显,因为您可以听到它被减慢的声音。
但在最新的 Chrome 56 和 Firefox 51 上,我无法再让它发生了。
然而,在 Chrome 上,很少且看似随机地切换选项卡can有效果。它甚至会因为某种原因限制 Web Workers。
这让我很头疼,因为我正在尝试编写一些需要非常精确的计时的 Web Audio API 内容,而且我什至看不到 setInterval 和 Web Workers 之间的区别,它们应该在自己的线程上运行。
为什么不setInterval
像以前一样操作并限制非活动选项卡?
更新:即使是setInterval
在通过 Blob URI 加载的 Web Worker 中,在某些情况下会受到限制,例如切换选项卡。
由于javascript是运行时编译代码(由浏览器在运行时编译,浏览器必须对其进行工作)。当您导航到其他选项卡时,该页面有自己的脚本,浏览器也必须编译该代码。因此,浏览器会为活动选项卡中的脚本分配较高的优先级,而其余选项卡中的脚本则分配较低的优先级。因此它将影响非活动选项卡上的脚本。但是,如果您的计算机具有较高的可用 RAM,则不会出现此问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)