由于其速度和可靠性,Google Chrome 已成为所有平台上最受欢迎的浏览器之一。然而,随着功能的增加和网页内容的丰富,Chrome浏览器占用的内存资源也越来越多,加载速度也有所降低。
一直追求速度的谷歌浏览器也不会放弃继续提高加载速度。当然,占用更多的硬件资源也是谷歌面临的一个令人头疼的问题。如何提高加载速度、减少资源占用是Google的目标,因此新的极速模式(微快模式)也应运而生。
今年2 月,我们曾报道过Google 正在努力推出一项新功能,使Chrome 在某些网站上的响应速度更快。这项新功能称为“Never Slow”速度模式,通过对加载资源的大小设置限制,然后丢弃导致页面读取速度过慢的部分,帮助用户访问较慢的资源。这种新模式基于所谓的预算管理模式,即Google Chrome 处理可用页面资源的方式。
现在看来谷歌Chrome应该准备推出极速模式了,所以现在这个模式的细节和开发标准都已经公布了。
注:该功能与国产浏览器极速模式的原理和技术方案不同。国内极速模式只是IE/Chromium内核切换。
Chrome目前正在内部测试“Never-Slow Mode”,更多相关细节已经在网上出现。根据Chromium Gerrit commit曝光,该模式可以
阻止大型脚本并为某些资源类型(脚本、字体、CSS、图像)设置资源预算。在这种模式下,谷歌将只允许浏览器读取快速脚本,提高网页和内容的加载速度。
今天,媒体在一位Google 工程师的Github 帖子中发现了有关Never-Slow Mode(以下简称NSM)的技术细节。
谷歌表示,网页可以在HTTP header中定义是否开启NSM模式。如果网站选择性地开启NSM模式,Chrome将部署有限的资源预算来提高页面加载速度并改善网页体验。
对于网站来说,NSM模式可以让读者更容易保证“加载速度”。
如下图所示,仪表板式小图标指示其站点是否处于NSM 模式。
NSM的功能策略会禁用一些Web平台功能或设置资源预算以提高加载速度。
JavaScript和WASM模块限制:每个资源限制为50KiB,单个文件中所有交互的限制为500KiB;
CSS 样式表:每个资源限制100 KiB,总交互限制200 KiB。
Web 字体:每个资源100 KiB 限制;所有交互的限制为100 KiB。
图片:每个资源1024 KiB (1MiB) 限制,单个文件中所有交互的总体限制2048 KiB (2 MiB)
绝不慢速模式/极速模式/稍快模式:
极速模式允许网站在标题中做出声明。当Chromium系列浏览器读取到此声明时,它们将自动使用极快模式。当然,想要使用超快模式可能会给网站开发人员增加额外的工作,但为了提高加载速度和用户体验,这是值得的。同时,当网站正在以极速模式加载时,地址栏会显示相应的加载标志,提醒用户网站正在以极速模式加载。极速模式可以帮助浏览器丢弃某些过大的资源,同时减少浏览器的硬件资源使用并减少加载过程中的滞后。
可能会稍微影响网站的正常加载:
一般情况下,网站所使用的脚本和图片资源可能是必须的,尤其是某些样式表没有加载时,可能会出现排版问题。因此,开发者应在启用极速模式之前对网站进行修改,满足极速模式的要求后再启用该模式,以提高用户体验。同时,极限模式可以在用户交互下创造更多的预算,这意味着当用户滚动时会释放限制并加载更多的资源。以交互的方式增加网站的资源预算,尽量减少对网站加载的影响。当然,最终开发者还是要提前进行测试和修改。
各类资源的加载限制:
超过单次或累计上限的资源必须通过用户交互来加载。不同类型资源的具体限制是不同的。
交互情况下的资源限制:
前面我们提到,虽然有资源加载限制,但通过交互可以创造更多的硬件预算,但即便如此,交互后仍然存在限制。不同类型资源的具体资源限制也不同。例如,单个CSS 表限制为100KB,每次交互后其加载限制将扩展至200KB。字体资源每次限制为100KB,交互后继续增加100KB。谷歌解释称,字体本身较大,不属于需要立即加载的内容。图片资源加载限制为每张1MB,交互后限制增加至2MB。正常情况下,大多数网站上的图片应该小于这个限制。
目前尚不清楚测试何时开始:
目前,该标准的发布需要等待网站开发者进行修改和适配。第一个测试的仍然是Google Chrome Canary beta 版本。目前金丝雀版本已经有极速模式相关的实验性功能,但暂时开启后没有变化,暂时还无法体验。有兴趣的Web平台开发者可以点击这里查看详细说明:https://github.com/slightlyoff/never_slow_mode/