<script>标签async、defer的区别

heath_learning -
<script>标签async、defer的区别

普通script:立即请求文件,并且阻塞渲染引擎,js文件加载完成后阻塞渲染引擎并立即执行文件内容

async属性:立即请求文件,但不阻塞渲染引擎,js文件加载完成后阻塞渲染引擎并立即执行文件内容(多个使用async引入的脚本不保证按引入顺序执行)

defer属性:立即请求文件,但不阻塞渲染引擎,等到html解析完成后(DOMContentLoaded事件调用前)再执行文件内容(多个使用defer引入的脚本会按引入顺序执行)

type="module"属性:浏览器按照ECMA Script 6标准将文件当做模块进行解析,默认阻塞效果同defer,也可以配合async在请求完成后立即执行

具体效果如图:

绿色的线表示解析html,蓝色的线表示请求文件,红色的线表示执行script代码

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

javascripthtml5asyncdefer

扩展阅读

加个好友,技术交流

1628738909466805.jpg