防抖与节流

Posted wynnzen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防抖与节流相关的知识,希望对你有一定的参考价值。

  • 节流 throttle 在指定的时间间隔内只执行一次function
  • 防抖 debounce 只有当时间超过指定的时间间隔后才会触发function`

节流函数

function throttle(fn, interval = 300) {
    let flag = true;
    return function () {
        if (!flag) return; //在定时器间隔时间触发前,不会触发
        flag = false;
        setTimeout(() => {
            fn.apply(this, arguments);
            flag = true;
        }, interval);
    };
}

防抖函数

function debounce(fn, interval = 300) {
    let timeout = null;
    return function () {
        clearTimeout(timeout); //在间隔时间内触发,会清空计时器
        timeout = setTimeout(() => {
            fn.apply(this, arguments);
        }, interval);
    };
}

用途

节流:滚动条滚动时增加判断逻辑

防抖:用户在input框内输入名称

以上是关于防抖与节流的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript性能优化8——防抖与节流

js 防抖与节流原理

JavaScript防抖与节流

JavaScript防抖与节流

面试必问题:JS防抖与节流

防抖与节流区别以及使用场景