Contributed by
Kévin Dunglas
in #22273.
几周之前,我们添加了对使用HTTP/2进行推送的 asset preloading 的支持。由于反响强烈,我们决定改进并扩展此功能。实际上,我们决定为它创建一个完整的新组件: WebLink。
这个新组件管理着resources的链接,而不仅仅是assets的;通知浏览器以HTTP 和 HTTP/2 pushes来预加载和预取资源。组件实现了如下特性: HTML5 Links, Preload, 和 Resource Hints
link()
, 添加了Link
HTTP header;preload()
, preload resources (不只是 assets);dns_prefetch()
, 尽可能早地解析一个resource origin;preconnect()
, 初始化一个指向resource的早期connection (包括 DNSresolution, TCP handshake, 以及 TLS negotiation);prefetch()
, 指示客户端应当prefetch给定的resource;prerender()
, 指示客户端应当prerender(预渲染)给定的resource。
不像以上这些预加载功能,该组件并非仅对web assets有用。作为一个标准组件,意味着它也可以用在那些“在你的APIs中使用了HTTP/2推送来嵌入的资源进行替换”之案例中。