async和defer的作用是什么?有什么区别。

       当浏览器遇到 script 标签时,文档的解析将停止,并立即下载并执行脚本,脚本执行完毕后将继续解析文档。

三者之间的区别?

  • script
    当浏览器遇到 script 标签时,文档的解析将停止,并立即下载并执行脚本,脚本执行完毕后将继续解析文档。

  • defer script
    当浏览器遇到 script 标签时,文档的解析不会停止,其他线程将下载脚本,待到文档解析完成,脚本才会执行。

  • async script
    当浏览器遇到 script 标签时,文档的解析不会停止,其他线程将下载脚本,脚本下载完成后开始执行脚本,脚本执行的过程中文档将停止解析,直到脚本执行完毕。

Paste_Image.png

什么情况下使用 defer 和 async?

  • 如果脚本不依赖于任何脚本,并不被任何脚本依赖,那么则使用 defer。
  • 如果脚本是模块化的,不依赖于任何脚本,那么则使用 async。
  • 若两个属性同在,会忽略defer而遵从async。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容