script属性async和defer区别

<h4> 一般情况下,浏览器遇到外部script标签,会去下载脚本,而停止对页面的解析。
下载脚本完成后,执行后,才会继续解析页面。
在下载过程中浏览器是被阻止做其他有用的工作,包括解析HTML,执行其他脚本,以及展示CSS布局。这就是阻塞。</h4>
<p>1.async和defer可避免阻塞,下载他们的过程中,浏览器还能做其他事(加载文件时不阻塞页面渲染);
对于inline的script无效;使用这两个属性的脚本中不能调用document.write方法
2.async脚本在文件下载完成后会立即执行,并且其执行时间一定在window的load事件触发之前,async脚本很可能不会按其在页面中的出现次序顺序执行
3.defer脚本不会在下载(加载)后直接执行,而是在文档解析完成后才执行,而且按顺序执行,在document的DOMContentLoaded事件触发之前执行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 浏览器中script标签加载顺序是如何的呢?这个问题折腾了好几次了,之前弄清楚了以后,觉得做不做笔记的无关紧要,可...
    世事如烟_f411阅读 5,433评论 0 1
  • 没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下...
    饥人谷_Shirley阅读 4,466评论 0 0
  • 本文总结一下浏览器在 javascript 的加载方式。关键词:异步加载(async loading),延迟加载(...
    4ea0af17fd67阅读 4,661评论 0 2
  • JavaScript基础 按照任务中的代码,在IE8下提示:对象不支持“addEventListener”属性或方...
    cooore阅读 3,138评论 0 0
  • 首先我们先来看一下Script标签的各项属性: script标签也支持HTML中的全局属性: 下面我们来看看一看j...
    tobAlier阅读 4,768评论 0 2