By Noxxxx from https://interview.noxxxx.com/?post_type=post&p=25 上山打老虎
欢迎分享与聚合,尊重版权,可以联系授权
无任何属性的 Script
遇到 Script 标签,会按顺序执行脚本,继而阻塞 HTML 页面渲染
Async 属性(具有独立性)
其他脚本不会等待 async
脚本加载完成,同样,async
脚本也不会等待其他脚本
DOMContentLoaded
和异步脚本不会彼此等待,可能在前也可能在后
并行加载 JS,下载完成后立即执行,执行过程中可能阻塞页面渲染
Defer 属性(推荐使用)
并行加载JS,不阻塞页面渲染,具有 defer
特性的脚本总是要等到 DOM 解析完毕,但在 DOMContentLoaded
事件之前执行
有 defer 属性的多个 JS 文件,并行下载后,依旧会按照相对顺序进行解析
如果 <script>
脚本没有 src
,则会忽略 defer
特性。