script标签中的defer与async
script,defer,async三者的区别
- script:当解析器遇到script标签时,文档的解析将立即停止,并立即下载并且执行脚本,脚本执行完毕以后将继续解析文档
- defer script:当解析器遇到script标签时,文档的解析不会立即停止,其他线程将下载脚本,待到文档的解析完成,脚本才会执行
- async script:当解析器遇到script标签时,文档的解析不会停止,其他线程将下载脚本,脚本完成后开始执行脚本,脚本呢的执行过程中文档将会停止解析,直到脚本执行完毕
什么情况使用defer和async
- 如果脚本不依赖任何脚本,并不被任何脚本依赖时候,那么会使用defer
- 如果脚本是模块化的,不依赖任何脚本,则使用async