js实现defer
在JavaScript中实现类似defer的功能,可以通过多种方式延迟代码执行。以下是几种常见的方法:
使用setTimeout延迟执行
通过setTimeout将函数放入事件队列,延迟指定时间后执行。若延迟时间为0,则会在当前任务完成后立即执行。
setTimeout(() => {
console.log("这段代码会延迟执行");
}, 0);
使用Promise和async/await
通过Promise.resolve().then()将代码放入微任务队列,在当前宏任务结束后执行。
Promise.resolve().then(() => {
console.log("这段代码会在当前任务结束后执行");
});
使用requestIdleCallback
适用于需要在浏览器空闲时执行的代码,避免阻塞主线程。
requestIdleCallback(() => {
console.log("这段代码会在浏览器空闲时执行");
});
使用事件监听
通过监听DOMContentLoaded或load事件,确保代码在页面加载完成后执行。
document.addEventListener('DOMContentLoaded', () => {
console.log("这段代码会在DOM加载完成后执行");
});
使用defer属性(仅限脚本标签)
在HTML中通过<script>标签的defer属性延迟脚本执行,直到DOM解析完成。

<script src="script.js" defer></script>
以上方法可根据具体需求选择,分别适用于不同的延迟执行场景。






