当前位置:首页 > JavaScript

defer js 实现

2026-03-13 21:40:03JavaScript

defer 属性在 JavaScript 中的实现

defer 是 HTML <script> 标签的一个属性,用于控制脚本的加载和执行时机。通过添加 defer 属性,可以延迟脚本的执行,直到 HTML 文档解析完成后再执行。

基本用法

在 HTML 中,可以通过以下方式使用 defer 属性:

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

带有 defer 属性的脚本会在文档解析完成后按照它们在文档中出现的顺序依次执行。

与普通脚本加载的区别

普通脚本(无 deferasync 属性)会阻塞 HTML 解析,直到脚本下载并执行完毕。而 defer 脚本会在后台下载,同时允许 HTML 继续解析,最后在文档解析完成后按顺序执行。

与 async 属性的区别

asyncdefer 都允许脚本在后台下载而不阻塞 HTML 解析,但它们的执行时机不同:

  • async 脚本下载完成后立即执行,顺序无法保证。
  • defer 脚本在文档解析完成后按顺序执行。

适用场景

defer 适用于那些依赖 DOM 或其他脚本的代码,因为它能确保脚本在 DOM 完全解析后执行。如果脚本之间没有依赖关系,可以使用 async 以提高页面加载速度。

现代 JavaScript 模块的 defer 行为

对于 type="module" 的脚本,默认行为类似于 defer,无需显式声明:

<script type="module" src="module.js"></script>

模块脚本会延迟执行,直到文档解析完成,并且按顺序执行。

defer js 实现

注意事项

  • defer 仅适用于外部脚本(带有 src 属性的脚本)。
  • 内联脚本(无 src 属性)即使设置了 defer 也会立即执行。
  • 多个 defer 脚本会按照它们在文档中的顺序执行。

标签: deferjs
分享给朋友:

相关文章

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…