HTML <script> defer 属性
定义和用法
defer
属性是一个布尔属性。
如果设置了 defer
属性,则指定脚本在解析页面的同时并行下载,并在页面解析完成后执行。
注意:defer
属性仅适用于外部脚本(只有存在 src 属性 时才应使用)。
注意:可以通过多种方式执行外部脚本:
- 如果已设置 async:脚本会在解析页面的同时并行下载,并在可用时立即执行(在解析完成之前)
- 如果已设置 defer(而未设置 async):脚本会在解析页面的同时并行下载,并在页面解析完成后执行
- 如果既没有 async 也没有 defer:脚本被立即下载并执行,阻塞页面解析,直到脚本执行完成
语法
<script defer>
推迟脚本的执行
您可以用 async 和 defer 属性对脚本的执行方式加以控制。defer 属性告诉浏览器要等页面载入和解析完毕之后才能执行脚本。
浏览器在遇到带有 defer 属性的 script 元素时,会将脚本的加载和执行推迟到 HTML 文档中的所有元素都已得到解析之后。
这与将 script 移到页面末尾的结果是一样的:
<body> ... ... ... ... ... ... <script src="demo.js"></script> </body>
浏览器支持
表中的数字注明了首个完全支持该属性的浏览器版本。
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
8.0 | 10.0 | 3.5 | 5.0 | 15.0 |