Script标签上的defer和async属性是什么?

如果这两个属性都不存在,则脚本将被下载并同步执行,并将暂停文档的解析,直到完成执行为止(默认行为)。脚本会按照遇到的顺序下载并执行。

该 defer 属性会在文档仍在解析时下载脚本,但是会等到文档完成解析后再执行脚本,这等效于在DOMContentLoaded 事件侦听器中执行 。 defer 脚本将按顺序执行。

该 async 属性在解析文档期间下载脚本,但会在解析器完全完成解析之前暂停解析器以执行脚本。 async 脚本不一定按顺序执行。

注意:只有在脚本具有src属性(即没有内联脚本)的情况下,才必须使用两个属性 。

<script xx_src="script.js"></script>

<script xx_src="script.js" defer></script>

<script xx_src="script.js" async></script>

其他话题

  • 将defer 脚本放置 在中 <head> 允许浏览器在页面仍在解析时下载脚本,因此与将脚本放在正文末尾相比,这是一个更好的选择。

  • 如果脚本相互依赖,请使用 defer。

  • 如果脚本是独立的,请使用 async。

  • 使用 defer 如果DOM必须准备和内容没有放在内 DOMContentLoaded 监听。

其他连结
  • 异步与延迟属性

以上是 Script标签上的defer和async属性是什么? 的全部内容, 来源链接: utcz.com/z/317511.html

回到顶部