JS - defer 和 async

普通

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

async

<script async src="script.js"></script>async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。

defer

<script defer src="myscript.js"></script>defer,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但是 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成。(注意:带有defer属性的脚本执行也不一定按照顺序执行)

参见

javascript - defer 和 async 的区别 - SegmentFault 思否

原文地址:https://www.cnblogs.com/jffun-blog/p/11108402.html

时间: 2024-10-05 05:05:07

JS - defer 和 async的相关文章

js中sync、defer、async的区别

<script src="script.js"></script> 没有 defer 或 async,浏览器会默认为同步sync,会立即加载并执行指定的脚本,"立即"指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行. <script async src="script.js"></script> 有 async,加载和渲染后续文档元素的过程将和

defer和async(原生js学习)转

(1) 页面下载过程要干的事情 页面parse完毕----DOMContentLoaded(DOM树建立完毕)----onload(全部资源下完,图片,iframe,flash这些) 注意js脚本要下载并执行完毕,dom树才能出来,因为script标签也属dom的一部分,同时因为js也许有dom的操作,所以必须要等js脚本执行完毕,才能完成dom的构建. parse的过程则可理解为对文档全部扫一遍,知道要干什么,接下来才是整个DOM的构建过程.parse the markup and set t

script元素的defer、async详解

1. script with async = "async" and without defer: the browser load the outter-js and DOM in async mode, they are loaded at the same time. 2. script with defer = "defer" and without async: the browser load the DOM first, when load actio

defer=“defer”和async=“async”

<script type="text/javascript" src="demo_defer.js" defer="defer"></script> 立即下载,但延迟执行.即脚本将在页面完成解析时执行. 注:defer 属性仅适用于外部脚本,也就是在使用 src 属性时. <script type="text/javascript" src="demo_defer.js" as

defer和async的区别

先来试个一句话解释仨,当浏览器碰到 script 脚本的时候: <script src="script.js"></script> 没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行. <script async src="script.js"></script> 有 async,加载和渲染

script defer和async一探

今天几经折腾,终于回家了,最近公司上的事忙了好一阵子,终于可以闲下来,重新在整理一下,又重新了解了一下defer和async在页面加载过程差异. 定义和用法 async 属性规定一旦脚本可用,则会异步执行. 注释:async 属性仅适用于外部脚本(只有在使用 src 属性时). 注释:有多种执行外部脚本的方法: 如果 async="async":脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行) 如果不使用 async 且 defer="defer&qu

defer和async的详细区别

看过javascript高级程序设计的人,在javascript高级程序设计里,应该看到了介绍了有关defer和async的区别,可是比较浅显,而且也说得不是很清楚.下面我们来通过图片来详细了解下dfer和async的区别. 下面来看看这三句话: 1.<script src="script.js"></script> 没有 defer 或 async,浏览器会立即加载并执行指定的脚本,"立即"指的是在渲染该 script 标签之下的文档元素之

script标签中defer和async属性的区别

script标签存在两个属性,defer和async,因此script标签的使用分为三种情况: 1.<script src="example.js"></script> 没有defer或async属性,浏览器会立即加载并执行相应的脚本.也就是说在渲染script标签之后的文档之前,不等待后续加载的文档元素,读到就开始加载和执行,此举会阻塞后续文档的加载: 2.<script async src="example.js"></

defer 和 async 本地对象和宿主对象

<script async></script> 没有defer和async的情况下是"同步执行"的,浏览器解析到这里的时候,会先加载资源完成后立即执行,并阻塞程序的运行. async :异步的加载js资源 ,加载完成之后立即执行,不需要等待后续文档的加载!---加载的过程中不会阻塞程序的运行. defer:异步的加载js资源,加载完成后,等待后续文档加载完成之后再执行. 本地对象和宿主对象: ECMA-262 把本地对象定义为独立于宿主环境中ECMAScript