预先解析 DNS
非常简单,效果立竿见影,加快页面加载时间,多用于预解析 CDN 的地址的 DNS
Preload
浏览器会在遇到如下 link 标签时,立刻开始下载 main.js (不阻塞 parser ),并放在内存中,但不会执行其中的JS语句。
只有当遇到script标签加载的也是 main.js 的时候,浏览器才会直接将预先加载的JS执行掉。
主要可用的 as 属性值列举如下:
audio: 音频文件。
document: 一个将要被嵌入到 或 内部的 HTML 文档。
embed: 一个将要被嵌入到 元素内部的资源。
fetch: 那些将要通过 fetch 和 XHR 请求来获取的资源,比如一个 ArrayBuffer 或 JSON 文件。
font: 字体文件。
image: 图片文件。
object: 一个将会被嵌入到 元素内的文件。
script: JavaScript 文件。
style: 样式表。
track: WebVTT 文件。
worker: 一个 JavaScript 的 web worker 或 shared worker。
video: 视频文件。
Prefetch
浏览器会在空闲的时候,下载 main.js, 并缓存到 disk。当有页面使用的时候,直接从disk缓存中读取。其实就是把决定是否和什么时间加载这个资源的决定权交给浏览器。
如果 prefetch 还没下载完之前,浏览器发现 script 标签也引用了同样的资源,浏览器会再次发起请求,这样会严重影响性能的,加载了两次,,所以不要在当前页面马上就要用的资源上用 prefetch,要用 preload。
<link href="main.js" rel="prefetch">

被折叠的 条评论
为什么被折叠?



