1、同步〈script〉解析流程
2、defer意为推迟,async意为异步
3、defer
defer所谓的推迟,并不是推迟JS文件的下载,而是将其执行时机推迟到HTML文档解析完成之后、DOMContentLoaded之前。
大多数浏览器都支持并行下载,相邻的两个〈script〉标签对应的JS文件可以同时被加入下载序列。
但是执行按照script下载顺序执行。
〈script defer〉多script解析顺序
4、async
async声明的〈script〉标签对应的JS文件一旦被下载完成便立即执行,并且其执行期间浏览器将暂停HTML文档的解析,〈script async〉解析流程
async的执行是无序的,任何一个JS文件被下载完成之后都会被立即加入JavaScript执行序列中,不会考虑各自对应的〈script〉标签在HTML文档中的顺序。将代码6-7中的defer替换为async,如果b.js先于a.js下载完成则会立即被执行,〈script async〉多script解析流程