在向html页面中插入js脚本我们主要用 script 标签来引入,那么 script 标签加 async与 defer属性有什么区别呢
直接使用script标签引入js脚本文件,html会按照顺序来加载并执行脚本,在脚本加载执行过程中,会阻塞后续的DOM渲染
script 标签中加入 async 或者 defer 都可以使script不会阻塞后续DOM的渲染,区别在与
async
设置 async 会使script脚本异步加载,并在允许的条件下执行,并且会不按照 script引入的顺序执行,谁先加载完谁执行
defer
设置 defer属性,浏览器会异步下载该文件,并且会在文档渲染完毕,DOMContentLoaded事件后执行
如果有多个 defer属性的script,则会按引入顺序执行所有的js脚本