从上面这张图可以发现:
<script src="script.js"></script>
浏览器在读到script
标签后,就开始加载、执行script标签中的代码,此时html解析暂停。<script defer src="script.js"></script>
脚本加载和html文档解析是并行进行的,但是script
脚本的执行是在html解析完成后,DOMContentLoaded
事件触发之前开始的。
在浏览器加载并解析完html文档(样式表、图片、子窗口可能还没有加载完成),会触发DOMContentLoaded
事件。<script async src="myscript.js"></script>
script
脚本和html解析同步执行,并且script
脚本在加载完成后立即执行,在脚本执行的这段时间内浏览器不会解析html文档。