本文介绍了JavaScript中防抖和节流的核心概念及实现方式。防抖指在指定时间内多次触发只执行最后一次,节流指在指定时间内只执行一次。通过闭包和定时器机制,分别展示了防抖和节流的具体代码实现,适用于高频事件场景下的性能优化。
防抖机制的核心逻辑是:在设定的时间窗口内,无论触发多少次任务,仅执行最后一次触发的操作。
节流机制的核心逻辑是:在设定的时间窗口内,无论触发多少次任务,仅允许执行一次操作。
防抖
<button id="debounce">点我防抖!</button>
$('#debounce').on('click', debounce());
function debounce() {
let timer;
// 闭包
return function () {
clearTimeout(timer);
timer = setTimeout(() => {
// 需要防抖的操作...
console.log("防抖成功!");
}, 500);
}
}

节流:
<button id="throttle">点我节流!</button>
$('#throttle').on('click', throttle());
function throttle(fn) {
let flag = true;
// 闭包
return function () {
if (!flag) {
return;
}
flag = false;
setTimeout(() => {
console.log("节流成功!");
flag = true;
}, 1000);
};
}

至此,关于JavaScript防抖与节流的案例介绍完毕。如需了解更多相关内容,建议查阅本站过往文章或继续阅读后续章节,感谢支持。