不对script添加async和defer属性时,当浏览器引擎解析到script标签的时候才会下载js文件,下载完成立马执行其中的代码。
async:表示立即下载脚本,但不妨碍页面中的其他操作,如下载其他资源或者等待下载其他脚本,只对外部脚本有效
defer:表示脚本可以延迟到文档完全被解析和显示之后再执行,只对外部脚本有效。
简单分析:
1.当你的js文件资源不需要依赖其他js文件或者操作dom的时候,可以添加async来异步加载js文件,需要操作dom可监听DOMContentLoaded事件
2.单独加defer属性可保证页面都已经加载完毕,可以获取dom进行一些处理了。