预加载相关prefetch/preload async/defer

1,753 阅读1分钟

prefetch

利用浏览器空闲时间,预加载用户未来可能会用的资源(图片,视频,js,css)

<link href='/js/xx.js' rel='prefetch'>

preload

预加载那些在页面加载完成后就立即需要的资源,使得必需的资源更早得到加载利用,更不容易阻塞页面的初步渲染,进而提升性能

<link href="/js/xxx.js" rel="preload" as="script">

需要用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: 视频文件。

js async

加载脚本和渲染dom并行,脚本加载完成后,暂停HTML解析,立即执行js脚本

js defer

加载脚本和渲染dom并行,但脚本的执行会等到HTML解析完成之后