script 标签的 aysnc 和 defer属性

122 阅读1分钟

图片来源:www.growingwiththeweb.com/2014/02/asy…

  • 默认script

在解析html的过程中遇到script标签则会立即下载并执行(此时暂停html解析),在脚本下载和执行完成之后文档才能往下继续进行解析

  • script 加 defer属性

在解析html的过程中遇到script脚本可以异步下载(此时html解析一直进行),等到html解析完成则执行脚本,然后继续解析html

  • script 加 async属性

在解析html的过程中遇到script脚本可以异步下载(此时html解析一直进行),当脚本下载完成时立即执行脚本(此时暂停html解析),然后继续解析html

简单来说:
async 是异步下载后并立即执行,然后文档继续解析
defer 是异步加载后解析文档完成后,然后再执行脚本
当script同时有async和defer属性时,执行效果和async一致。