在浏览器中预取资源

资源预取是一种很好的技术,可以提高网站的感知页面速度,提供更好的用户体验,而且只需要很少的工作量。预取是在浏览器空闲时发生的,意味着它不会减慢初始加载速度,而是利用空闲时间来获取和缓存可能在以后有用的资源。

要预取资源,可以在文档的<head><body>中添加一个带有rel="prefetch"属性的<link>标签:

<link rel="prefetch" href="./cool_page/data.json">

这样做的作用是提示浏览器我们将需要这个资源,所以它应该在空闲时下载并存储在缓存中。请注意,预取更多是对浏览器的提示,而不是其他任何东西,所以在某些情况下,浏览器可能会忽略它(由于其他浏览器下载、用户设置、连接问题等)。

预取资源可以增加页面或经常请求的资源的感知加载时间,同时对于诸如Web字体之类的资源,还可以提供重大的性能优势,因为它们会在浏览器下载、解析和样式化DOM之后下载。目前,资源预取仅支持http://https://链接,但同源限制不适用于资源预取,因此如果需要,可以下载外部资源。

类似地,您可以使用rel="preload"属性预加载资源,这不是提示,而是浏览器必须遵循的指示:

<link rel="preload" href="./important_page/data.json">

与预取资源相比,预加载资源的唯一缺点是,根据您阅读本文的时间,浏览器支持可能较低。