素材牛VIP会员
<script async="async" /> 是个什么东西
 随***@  分类:Html5  人气:978  回帖:3  发布于6年前 收藏

刚刚在某个网页里看到这样一条语句

<script type="text/javascript" src="xxxx.js" async="async"></script>

不知道这个 async="async" 是什么意思,求解

 标签:html5javascript

讨论这个帖子(3)垃圾回帖将一律封号处理……

Lv6 码匠
蜗***跑 产品经理 6年前#1

大概描述让脚本延迟加载。具体请看这边文章:http://ued.ctrip.com/blog/?p=3121

Lv6 码匠
de***oo 页面重构设计 6年前#2

这个讲的很清楚defer和async的区别

Lv2 入门
麦***气 JAVA开发工程师 6年前#3

摘抄下我以前的笔记:

在HTML 中使用JavaScript

HTML4.01为<script>定义了6个属性(废弃的这里不再给出):

  • async: 可选,表示应该立即下载脚本,但不应妨碍页面中得去他操作;
  • defer: 可选,表示脚本可以延迟到文档完全被解析和显示之后再执行,只对外部脚本有效;
  • src: 可选,外部脚本文件;
  • type: 可选,表示编写代码使用的及哦啊本语言的内容类型(MIME),通常为 text/javascript ,默认也为 text/javascript。

使用<javascript>元素有两种方式:

  • 直接在页面嵌入 JavaScript 代码;
  • 包含外部 JavaScript 文件。

包含在<script>元素内部的JavaScript 代码将从上至下依次解释。在解释器 <script> 元素内部的所有的代码求值完毕以前,页面中的其余内容将不会被浏览器加载或显示。

在使用<script>嵌入 Javascript 代码时,记住不要再代码的任何地方出现 "</script>"字符串,浏览器会认为这是结束的</script>标签。

无论如何包含代码,只要不存在defer或者async属性,浏览器都会按照<script>元素所在页面中出现的先后顺序对它们依次进行解析。

defer属性只适用于外部脚本文件,现实中,延迟脚本并不一定会按照顺序进行(第一个延迟脚本先于第二个延迟脚本执行),也不一定会在 DOMContentLoaded 事件触发前执行,因为最好只包含一个延迟脚本。

异步脚本同样只适用于外部脚本文件,并告诉浏览器立即下载文件,异步脚本并不保证按照它们的先后顺序执行。 异步脚本一定会在页面的load 事件前执行,但可能会在 DOMContentLoaded 事件触发之前或之后执行。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取