谷歌的实验功能使网页更快

谷歌宣布了一种运行JavaScript的新方式,可以提高网页响应速度,帮助使用它的发布商在一个新的核心网络关键指标上击败竞争对手。该公告提供了一种提高网页性能的方法。如果这次试验成功了,那么所有内容管理平台和系统的出版商都想要使用它来领先于他们的竞争对手。

与下一幅画的交互(INP)是一个度量,是首次输入延迟(FID)的替代品。

INP计划于2024年3月作为核心网络重要指标发布。为了在即将到来的INP核心网络上取得好成绩,一个网页需要对每一个可能的用户交互做出反应。导致INP得分不高的原因之一是一些JavaScript需要很长时间才能运行。当这些脚本需要很长时间才能运行时,它们被称为长任务。“长任务”的问题在于,它们就像在快车道上慢吞吞地行驶的司机,拖慢了交通。目前发生的情况是,控制用户交互的脚本被长任务阻塞,导致网页无响应。在该场景中,用户在单击按钮后等待页面执行某些操作。在今天的许多网页中,典型的情况是用户交互必须等到长任务运行完毕。下面的图片显示了一个长任务是如何阻止重要的用户交互任务运行的。

长任务阻塞用户交互脚本

Google’s Experimental Feature Makes Webpages FasterGoogle’s Experimental Feature Makes Webpages Faster

谷歌提出的是解决这个问题的方案,它使长任务表现得像一辆缓慢的汽车停在路边,让消防车通过。“现有策略不起作用”

“已经有一些编码工作可以帮助提高用户交互得分。但是它们并不能很好地工作,因为它们被设计用来解决其他问题,而不是用户交互问题。Google的解释者说,现有的策略暂停长任务,但将其发送到所有其他脚本队列的后面,其中许多脚本可能不如长任务重要。在这个典型的场景中,必须完成的长任务必须等到不太重要的脚本完成,因为它现在在队列的后面。当前的编码解决方案可能最终会造成更糟糕的情况,而不是有所帮助。对于长任务的

解决方案是调度程序。解决长任务问题的方法是Google称之为scheduler.yield的方法。

什么调度器。Yield所做的是暂停长任务,以便让位于可以开始运行的用户交互任务。一旦用户交互脚本完成,长任务就能够跳转到队列的头部并再次开始运行。这是Google发布的一个插图,展示了如何将一个长任务分解成更小的任务,以便运行重要的用户交互脚本。

如何调度的说明。yield Works

Google’s Experimental Feature Makes Webpages Faster Google’s Experimental Feature Makes Webpages Faster

Origin Trials Of Scheduler。生成

运行调度程序的能力。Chrome 115于7月13日发布,自那以后就可以使用了。Google正在招募志愿者在“原始试验”中测试这项新功能,以便在最终成为正式功能之前收集反馈,了解它在现实世界中的工作原理。原始试验是参与测试新功能的机会(关于原始试验的信息在这里)。Google在声明中解释说:“为了不断努力提供新的api,帮助web开发人员使他们的网站尽可能地灵活,Chrome团队目前正在运行调度程序的原始试用版。从C的115版开始hrome。

调度器。yield是对调度器API的新添加,它允许以一种比传统上依赖的方法更简单、更好的方式将控制交还给主线程。

运行调度程序的潜在问题之一。一个活的网站的收益是,一个回退将需要编码在非Chrome 115浏览器,使网站将正常工作的网站访问者不支持Chrome 115的新功能。

还有一种方法可以在本地运行它进行测试:

“如果您想用调度器进行实验。在本地生成,在chrome的地址栏中输入chrome://flags,并从实验Web平台功能部分的下拉菜单中选择启用。

这将使调度器。yield(以及任何其他实验性功能)仅在您的Chrome实例中可用。这句话的意思是:这个新功能目前处于测试阶段。但考虑到INP计划在2024年3月成为官方的核心网络关键指标,密切关注这个Chrome新功能可能会很有用,一旦它结束了实验阶段,就尽快采用它。现在采用它可能是领先于竞争对手的一个好方法,只要还没有采用新特性的浏览器有一个退路。

 

滚动至顶部