JavaScript防抖与节流实现原理及代码示例

作者:青柠时间:2026-10-24 12:37:10浏览:370

本文介绍了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防抖与节流的案例介绍完毕。如需了解更多相关内容,建议查阅本站过往文章或继续阅读后续章节,感谢支持。

作者最新文章