乐趣区

关于javascript:防抖和节流

1. 基本概念

针对事件高频触发的两种解决策略。
防抖(debounce):在 n 秒内触发,则从新计时,直至最初一次触发,隔 n 秒后执行事件
节流(throttle):每隔 n 秒触发一次

2. 实用场景

防抖:input
节流:scroll,resize

3. 代码

// 防抖
function debounce(func,time){
    var timeout=null
    return function(){if(timeout!==null){clearTimeout(timeout)
        }
        timeout=setTimeout(func,time)
    }

}
// 节流
function throttle(func,time1){
    let time=true;
   
    return function(){if(time===false){return}
        time=false
        setTimeout(()=>{func.apply(this,arguments)
            time=true
        },time1)
    }
}
退出移动版