链接预取是指在用户点击链接之前由浏览器预先获取资源,有时可以减少页面跳转等待时间的技术。HTML 的 <link rel="prefetch"> 标签是向浏览器告知未来跳转中可能需要的资源的提示。使用 Speculation Rules API,可以指定条件来控制预取和预渲染。在 MDN(截至 2026 年 9 月)中,该 API 被归类为实验性功能。
支持的浏览器会发出低优先级的请求,并将响应保存到磁盘上的 HTTP 缓存中。由于用户实际点击链接时从缓存读取资源,因此可以减少网络等待时间。在 Speculation Rules API 中,以 JSON 格式定义规则,可以将 URL 模式或用户行为(悬停、指针移动)作为触发条件开始预先获取。
短链接要经过重定向,因此会增加 1 个往返的延迟。有一种方法是预取重定向目标 URL,但根据 MDN(截至 2026 年 4 月),许多浏览器实现了缓存分区,因此在跳转到其他网站时,<link rel="prefetch"> 对主文档不起作用。重定向目标是其他网站时,会受到这一限制。也可以考虑在链接列表页面或邮件简报的预览画面中,在悬停时开始预先获取的实现。
不过也有需要注意的地方。预取也会获取用户实际上不会访问的页面的资源,因此在移动网络中数据消耗会增加。另外,预取请求本身也会被记录到访问日志中,因此有时难以准确统计点击次数。从隐私角度看,需要考虑会向用户无意访问的网站发出请求这一点。最好结合 Data Saver 模式的检测和基于用户设置的控制来实现。