Chrome 如何防止JavaScript在最小化的浏览器窗口上运行缓慢?

cl25kdpy  于 2023-04-27  发布在  Go
关注(0)|答案(1)|浏览(516)

我为chrome构建了一个自动化扩展,我注意到当浏览器窗口最小化或在后台时,它并不真正工作。
我在网上读到“当窗口最小化时,JS不会完全停止运行。相反,Chrome会限制CPU的使用,以及使计时器触发(据我所知),每秒最多一次。它不会完全停止,但会变得非常慢。”
这和我的经历差不多,它并没有完全停止,而是变得非常缓慢和低效。有什么方法可以防止这种情况发生吗?
来源:https://www.quora.com/Does-JavaScript-stop-running-in-minimized-browser-windows-in-Chrome

dbf7pr2w

dbf7pr2w1#

根据这里的文档:https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API
大多数浏览器会停止向后台选项卡或隐藏的发送requestAnimationFrame()回调,以提高性能和电池寿命。setTimeout()等计时器会在后台/非活动选项卡上减慢速度,以帮助提高性能。
但有几个不同的例外或交易,你可能可以利用:
某些进程不受此行为的影响。在这些情况下,您可以使用页面可见性API来降低隐藏选项卡时对性能的影响。
正在播放音频的选项卡被视为前台选项卡,不会减慢。运行使用实时网络连接(WebSockets和WebRTC)的代码的选项卡不会减慢,以防止这些连接意外关闭。IndexedDB进程也不会被限制,以避免超时。
也许你可以运行这些进程中的一个来保持标签页的活动状态,当窗口最小化时来一首好听的歌怎么样;)呵呵

相关问题