使用 Chrome 开发者工具调试推测规则

推测规则可用于预提取和预渲染下一个网页导航,详情请参阅上一篇博文。这样一来,网页加载速度会快得多,甚至可以实现即时加载,从而大幅提升这些额外网页导航的核心网页指标

调试推测规则可能很棘手。对于预渲染的网页,这一点尤为重要,因为这些网页是在单独的渲染器中渲染的,有点像隐藏的后台标签页,在激活时会替换当前标签页。因此,您无法始终使用常规的开发者工具选项来调试问题。

Chrome 团队一直在努力增强开发者工具对推测规则调试的支持。在这篇博文中,您将了解如何使用这些工具来了解网页的推测规则、这些规则可能无法正常运行的原因,以及开发者何时可以使用更熟悉的开发者工具选项,何时不能使用。

“预”字词的说明

有很多“预”字开头的术语容易混淆,因此我们先来解释一下这些术语:

  • 预取:提前提取资源或文档,以提高未来的性能。本文介绍了如何使用 Speculation Rules API 预提取文档,而不是使用类似的旧版 <link rel="prefetch"> 选项(该选项通常用于预提取子资源)。
  • 预渲染:这比预提取更进一步,它实际上会渲染整个网页,就好像用户已导航到该网页一样,但会将该网页保留在隐藏的后台渲染器进程中,以便在用户实际导航到该网页时随时可用。同样,本文档重点介绍的是较新的推测规则 API 版本,而不是较旧的 <link rel="prerender"> 选项(该选项不再执行完整的预渲染)。
  • 推测性导航:由推测规则触发的新预提取和预渲染选项的统称。
  • 预加载:一个过载的术语,可以指多种技术和流程,包括 <link rel="preload">预加载扫描器服务工作线程导航预加载。本文不会介绍这些内容,但会包含该术语,以便清楚地区分它们与“推测性导航”术语。

prefetch 的推测规则

推测规则可用于预提取下一次导航的文档。例如,当将以下 JSON 插入到网页中时,系统会预提取 next.htmlnext2.html

<script type="speculationrules">
  {
    "prefetch": [
      {
        "source": "list",
        "urls": ["next.html", "next2.html"],
        "tag": "rule-set-tag-1"
      }
    ]
  }
</script>

与旧版 <link rel="prefetch"> 语法相比,使用推测规则进行导航预提取具有一些优势,例如 API 更具表现力,并且结果存储在内存缓存中,而不是 HTTP 磁盘缓存中。

调试 prefetch 推测规则

由推测规则触发的预取与其他提取一样,可以在网络面板中看到: