异步- async 和 defer

作者: 细密画红 | 来源:发表于2017-01-19 10:25 被阅读39次
  • 无 async 和 defer
    浏览器立即加载并执行指定脚本(读到即加载并执行),阻塞文档解析

  • async
    脚本的加载执行和文档的加载渲染 并行。

  • defer
    脚本的加载和文档的加载渲染并行,但脚本的执行必须在所有元素解析完成之后进行,即DOMContentLoaded事件触发之前完成。

async.png

defer和async在网络读取(下载)阶段是一样的,和HTML解析都是并行(异步)

async是无序执行,它的执行紧跟着下载,只要下载完了就立即执行(不考虑脚本的依赖关系,对于那些没有依赖关系的脚本来说是非常合适的),执行时同样阻塞HTML解析。

defer是有序执行,会按照他们在页面上的顺序依次执行,在HTML解析完成之后,DOMContentLoaded事件之前执行。

相关文章

  • H5 资源异步加载策略

    1、async & defer 区别async异步加载脚本,加载完立马执行defer异步加载脚本,并在DOMCon...

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

    async 和 defer 的作用 async:async 属性标注的脚本是异步脚本,即异步下载脚本时,不会阻塞文...

  • script、link标签详解