谷歌正在探索从Chrome86开始在后台网页中限制JavaScript计时器唤醒的想法,Chrome86在Chrome://FLAGS后面提供了一个新的实验性功能。这样,Google Chrome会将后台网页中的Javascript计时器唤醒限制为每分钟1个唤醒,类似于Safari。此功能适用于用于Windows、Mac、Linux、Android和Chrome OS的Google Chrome。
在使用DevTools检查热门网站在后台所做的工作后,开发人员发现,当网页在后台打开时,Google Chrome用户并没有从过度使用Javascript计时器中受益。
例如,基本上没有必要跟踪一些事情,特别是当网页是背景时。例如,检查滚动位置是否改变,报告日志,分析与广告的交互。后台的一些非必要的JavaScript任务会导致不必要的电池消耗,这是谷歌现在正试图解决的问题。
谷歌的目标是减少后台选项卡中Javascript计时器唤醒的次数,并在不破坏用户体验的情况下显著延长PC的电池寿命。谷歌证实,这不会影响依赖WebSockets或长时间投票来接收消息或更新的网站或应用程序。
根据TheWindowsClub看到的一份技术文件,谷歌最近试验了一个原型,将Javascript计时器唤醒限制在每分钟1次。在这个实验中,谷歌在后台随机打开了36个标签,而前台的标签大约是空白的。Google在将JavaScript计时器唤醒速度限制为每分钟1次的情况下进行了两次实验。
在实验结束时,谷歌发现,对于拥有多达36个背景选项卡的用户,当前台选项卡大约为空白时,对Javascript定时器进行节流可以延长电池寿命近2小时(28%)。
同样,谷歌也进行了另一项实验。但这一次,谷歌没有在前景出现空白标签,而是以全屏模式播放了一段YouTube视频。谷歌还关闭了“节能”设置,以防止显示器进入空闲状态。此外,谷歌还禁用了显示设置中的“自动调整亮度”选项。
谷歌的目标是验证减少后台活动是否有助于延长电池寿命,即使在有前台活动的情况下也是如此。根据谷歌的说法,对Javascript定时器进行节流可以使后台运行多达36个选项卡的用户的电池续航时间增加近36分钟(13%),此外还可以在前台播放YouTube视频。
谷歌表示,当Javascript定时器导致唤醒时,所有Javascript就绪的定时器都可以执行,即使它们没有引起唤醒。谷歌工程师有几种方法可以继续实施这一功能,以显著降低Chrome的电池消耗。
如果网页在后台停留5分钟,Chrome计划将JavaScript计时器唤醒与小于或等于5分钟至1分钟间隔的超时进行调整。同样,Chrome计划将JavaScript计时器唤醒与超过5分钟到1秒的超时时间进行调整。
然而,企业策略将允许系统管理员在Google Chrome中禁用此功能。这样一来,Chrome企业版浏览器一旦发布到稳定版就不可能带来麻烦了。但谷歌表示,企业政策将在该功能发布到稳定版后1年内停用。
当Javascript计时器延迟超过5秒时,Chrome还会在DevTools控制台向开发人员提供一条消息。
然而,目前还没有迹象表明,这一功能是否也会很快出现在基于Chromium的新款Edge Web浏览器中