Speed Brain上线:网页加载速度飙升45%

Cloudflare 推出了名为 Speed Brain 的新功能,它通过 Speculation Rules API 预测用户可能点击的下一个链接,并提前将该页面的内容下载到浏览器缓存中。这种“预取”技术旨在消除后续页面的加载延迟,让浏览体验感觉即时。该功能已在免费计划中默认启用,初步数据显示页面加载速度平均提升了 45%,未来还将通过机器学习和预渲染技术进一步增强效果。

网页加载的传统瓶颈

通常,当您点击一个链接时,浏览器需要完成一系列步骤才能显示新页面:

    • 与服务器建立安全连接。
    • 发送请求,等待服务器处理并返回 HTML 文件。
    • 解析 HTML,发现并请求页面所需的其他资源(如 CSS、JavaScript、图片)。
    • 下载并处理所有资源,最终将页面渲染出来。

这个过程中的每一步都会产生延迟,即使网络速度很快,这些处理时间也会累加,导致用户能明显感觉到加载过程。

过去提升速度的尝试及其局限

多年来,业界尝试了多种方法来解决加载延迟问题,但各有不足。

    • 手动预取 (<link rel="prefetch">): 开发者需要手动在代码中指定要预取的资源。这不仅工作量大,而且往往依赖猜测而非真实数据,效果有限。
    • 服务器推送 (HTTP/2 Server Push): 服务器主动将资源“推”给浏览器,但它无法知道浏览器缓存中已有哪些内容,常常导致带宽浪费和性能问题,最终被主流浏览器放弃。
    • Early Hints: 服务器在准备主页面时,可以提前“提示”浏览器开始加载关键资源。这很有用,但主要适用于服务器处理时间较长的场景,且无法适应用户的动态行为。

Speed Brain 的不同之处:更智能、更安全

Speed Brain 建立在过去的经验之上,通过 Speculation Rules API 这一新兴的浏览器标准,将决策权交还给客户端,使其更加智能和安全。

它不是在用户点击链接 才开始加载,而是在用户即将点击时(例如,鼠标按下或触摸屏幕时)就开始预取下一个页面的内容。

核心优势与安全护栏

Speed Brain 的设计解决了以往预取技术的核心痛点:过时的配置错误的预取

    • 动态规则: 它不依赖于静态的 URL 列表,而是根据当前页面的链接动态生成预取候选项,避免了配置过时的问题。
    • 保守策略: 初始版本采用 “保守” (conservative) 模式,仅在用户按下鼠标或触摸链接时才触发预取。这大大提高了预取的准确性,避免了因用户只是快速划过链接而造成的资源浪费。
    • 仅限缓存内容: 这是最重要的安全措施。Speed Brain 只会预取已经存在于 Cloudflare CDN 缓存中的静态内容。如果请求的内容不在缓存中,请求会被安全地拒绝。这可以防止意外的副作用,例如预取“退出登录”页面导致用户被提前登出。

目前的成果与数据

Speed Brain 已在所有免费计划的网站上默认启用,并取得了显著成效。

在成功的预取导航中,网站的 LCP (Largest Contentful Paint,最大内容绘制时间) 指标平均降低了 45%

    • 时间节省: 每次成功的预取可以为用户节省大约 0.88 到 1.1 秒 的加载时间。
    • 适用范围: 目前约 70% 的网络流量来自支持该技术的 Chromium 内核浏览器(如 Chrome 和 Edge)。
    • 巨大影响: 综合来看,该功能每天为全网用户节省的加载时间总和超过 82 年

局限性与注意事项

    • 浏览器支持: 目前仅限于 Chromium 121 及以上版本的浏览器。
    • 内容类型: 只对可缓存的静态内容有效,不会影响动态页面的加载。
    • 503 错误码: 如果您在浏览器开发者工具中看到针对预取请求的 503 错误,请不要担心。这表示请求的内容不在 CDN 缓存中,预取被安全地取消了,属于正常现象。

未来展望

目前的 Speed Brain 只是一个开始,未来的计划包括:

    • 机器学习: 利用 Cloudflare 的全局网络数据,训练更精准的预测模型,为不同网站定制预取规则,实现高达 75% 的 LCP 性能提升。
    • 预渲染 (Prerendering): 不仅仅是下载页面资源,更是在后台将其完全渲染好,实现真正的“即时”加载。
    • Argo Smart Browsing: 将更激进的 Speed Brain 模型与 Argo Smart Routing 结合,为付费用户提供覆盖静态和动态内容的全方位性能优化方案。