Skip to content

script标签的defer与sync

作用: 异步加载js文件,不阻塞页面解析。(内联脚本无法异步加载)


了解 window.onload与DOMcontentLoaded的区别

defer与sync的区别

defer

下载完毕等待文档解析完成后执行【在DOMContentLoaded事件前执行,有可能阻塞DOM渲染】

注意:

1、如果有多个声明了defer的脚本,则会按顺序下载和执行

2、如果没有src属性则该属性无效

async

下载完毕立即执行【在window.onload事件前执行】

注意:async下载js脚本不能保证执行顺序,因此js脚本之间不能有依赖关系。

可视化script标签

image

使用场景

如果脚本不依赖于其他脚本,则使用async

如果脚本依赖于其他脚本,则使用defer

应用场景

淘宝首页用的都是async:https://www.taobao.com/

async在 window.onload事件前执行【此时DOM应该已经渲染完成,因此不阻塞DOM渲染】

image