当前位置:首页 > JavaScript

js实现defer

2026-02-02 09:00:59JavaScript

js实现defer

在JavaScript中,defer属性用于延迟脚本的执行,直到HTML文档解析完成。以下是如何在原生JavaScript中实现类似defer功能的方法:

使用DOMContentLoaded事件

通过监听DOMContentLoaded事件,可以确保脚本在DOM完全加载后执行:

document.addEventListener('DOMContentLoaded', function() {
    // 在这里编写需要延迟执行的代码
    console.log('DOM fully loaded and parsed');
});

动态创建script标签并设置defer属性

可以动态创建<script>标签并设置defer属性:

var script = document.createElement('script');
script.src = 'your-script.js';
script.defer = true;
document.head.appendChild(script);

使用setTimeout延迟执行

虽然不推荐,但可以通过setTimeout实现类似延迟效果:

setTimeout(function() {
    // 延迟执行的代码
}, 0);

使用async/defer结合Promise

对于更复杂的场景,可以结合Promiseasync/await

js实现defer

function deferExecution() {
    return new Promise(resolve => {
        if (document.readyState === 'complete') {
            resolve();
        } else {
            window.addEventListener('load', resolve);
        }
    });
}

async function runDeferred() {
    await deferExecution();
    // 延迟执行的代码
}

runDeferred();

注意事项

  • 原生defer属性只对外部脚本有效,对内联脚本无效
  • 动态创建的脚本默认是异步加载的,设置defer可以改变其行为
  • 多个defer脚本会按它们在文档中出现的顺序执行

以上方法提供了在不同场景下实现延迟执行JavaScript代码的多种选择。

标签: jsdefer
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…