使用web预加载技术优化你的应用

preload

优先加载的资源,preload 是告诉浏览器页面必定需要的资源,浏览器一定会加载这些资源;如:字体文件

prefetch

优先级较低,prefetch 是告诉浏览器页面可能需要的资源,浏览器不一定**会加载这些资源。如:webpack动态导入的分割代码

DNS预加载

DNS prefetching 允许浏览器在用户浏览页面时在后台运行 DNS 的解析。如此一来,DNS 的解析在用户点击一个链接时已经完成,所以可以减少延迟。

1
<link rel="dns-prefetch" href="http://www.spreadfirefox.com/">

Preconnect

preconnect 允许浏览器在一个 HTTP 请求正式发给服务器前预先执行一些操作,这包括 DNS 解析,TLS 协商,TCP 握手,这消除了往返延迟并为用户节省了时间。
“Preconnect 是优化的重要手段,它可以减少很多请求中的往返路径 —— 在某些情况下可以减少数百或者数千毫秒的延迟。—— lya Grigorik”

1
<link href="https://cdn.domain.com" rel="preconnect" crossorigin>

Prerendering

Prerendering 和 prefetching 非常相似,它们都优化了可能导航到的下一页上的资源的加载,区别是 prerendering 在后台渲染了整个页面,整个页面所有的资源。如下:

1
<link rel="prerender" href="https://www.keycdn.com">

参考&引用