ducky_L

导航

js 手写防抖节流

1、防抖:避免事件的频繁调用,即当事件停止一段时间后再促发。

  应用:浏览器resize、input校验、button点击

    const myDebounce = (fn, wait){
            let timer = null;
            return (...args) => {
                if (timer) clearTimeout(timer);
                timer = setTimeout(() => {
                    fn(...args);
                }, wait);
            }
        }   

  

2、节流:控制事件调用的频率,即一段时间调用一次。

  应用:scroll事件

const myThrottle=(fn,wait)=>{
    let timer=null;
    setTimeout(()=>{
        if(timer) return;
        fn();
        timer=null;
    },wait);
}

  

 

posted on 2023-04-13 14:51  ducky_L  阅读(84)  评论(0编辑  收藏  举报