防止隐藏标签上的Chrome计时器以1秒的分辨率运行

Prevent Chrome Timers on Hidden Tabs Running at 1 Second Resolution

本文关键字:1秒 分辨率 运行 计时器 Chrome 隐藏 标签      更新时间:2023-09-26

我读到隐藏选项卡上的计时器以1秒的分辨率运行。这对我来说确实是个缺点。使用WebRTC浏览器可以建立一个p2p网络。对于我的应用程序,其中一个对等点充当其他对等点的服务器。现在,如果服务器的对等端隐藏了他的选项卡,所有其他客户端都会受到影响,因为服务器以每秒1秒的速度运行。

在我的情况下,应用程序是一个游戏,所以这是不可接受的。我认为随着WebRTC的出现,会有更多的应用程序想要利用这种模式。这个问题有解决办法吗?

如果不是,谷歌应该解决这个问题!

你可以利用Web Workers。它们不受选项卡/窗口状态的影响,并且您可以获得最小的延迟。

下面是一个Web Workers + setInterval/setTimeout的示例/时间测试。在这个例子中,我有一个worker,它每200毫秒向主页发送一条消息。

从我的测试中,当标签被隐藏时,每次调用的延迟小于0.5毫秒,与活动标签几乎相同。