JavaScript defer

17 Mar 2025 | 阅读 2 分钟

defer 是一个布尔值,用于指示脚本在文档解析完成后执行。它仅适用于外部脚本(即,仅在我们为 <script> 标签指定 src 属性时才有效)。它声明脚本不会创建任何内容。因此,浏览器可以继续解析页面的其余部分。带有 defer 属性的 <script> 不会阻塞页面。

我们可以通过下图来理解 defer 属性的用法

JavaScript defer

此属性告诉浏览器在整个 HTML 文档完全解析后执行 <script> 文件。有时,在 <a href="html-script-tag"><script> 标签</a> 中添加 HTML head 部分会消耗更多内存,并且还会导致性能问题。为了提高性能,我们可以在 <script> 标签中添加 defer 属性。

有时脚本加载时间超过预期,导致显示空白页面而不是内容。在移动设备上,由于小设备的内存有限,情况会更糟。因此,通过使用 defer 属性,我们可以提高加载性能。

旧版浏览器不允许使用 defer 属性,因此对于旧版浏览器,我们必须使用 defer 属性的替代方案。替代解决方案是,我们必须将 <script> 部分放在 </body> 标签</a> 之前。这可以按以下方式完成

语法

示例

在这里,我们正在使用一个外部 javascript 文件,即 myscript.js

myscript.js

输出

执行上述代码后,输出将是 -

JavaScript defer