1.script元素中的defer属性
1.1说明
使用该属性可以使脚本延迟到文档完全被解析和显示之后再按照原本的顺序执行,即告诉浏览器立即下载脚本,但延迟执行,该属性只对外部脚本有效
1.2使用方法
浏览器会先执行a.js,在执行b.js
2.script元素中的async属性
2.1说明
表示异步加载,告诉浏览器立即下载文件,一旦下载完成(页面还在解析中)立即执行,但不保证它们的执行顺序,适用于外部脚本文件
2.2使用方法
浏览器可能会先执行b.js,在执行a.js
3.二者的区别
defer会等待页面解析完成之后按照顺序执行,而async会在下载完成后立即执行,此时页面可能并未完全解析完成,并且可能不按顺序执行,先下载完成的先执行