js的异步加载

  • javascript脚本的加载执行分为三种情况,可以通过在引用标签< scripe>内设定属性值,规定脚本的加载方式

  • < script src=”script.js”>

没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。

  • < script async src=”script.js”>

有 async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步),script的加载和执行都是异步的。

  • < script defer src=”script.js”>

有 defer,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成。

defer:脚本延迟到文档解析和显示后执行,有顺序,只有 Internet Explorer 支持 defer 属性。
async:规定一旦脚本可用,则会异步执行,仅适用于外部脚本,是html5的属性。不保证顺序。

文章目录
,