js中的防抖函数


举个例子:   

    我们直接执行了一个 refresh(),这个refresh函数会被执行30次,

    这样的话就太过于频繁了,我们就可以将refresh放入防抖函数中去,生成一个新的函数,之后,我们就使用新的函数

    这个新生成的函数,并不会非常频繁的调用,如果下一次执行来的非常快,那么会将上一次的取消掉;

 

 

    上面说的可能有些抽象了,看看下面的代码,估计会好理解一些

    

 
 
    /**
     * 封装一个防抖动方法
     * debounce: 防抖函数,  它的两个参数=>  func:函数(要进行防抖的函数)    delay: 毫秒(传入一个时间限制,毫秒)
     * let timer = null;  声明一个timer为null
     * if(timer) clearTimeout(timer) ===============> 如果timer不为空,那么清空它(干掉他)
     * 
     * delay :传入的毫秒,在这也就是延迟时间
     */
    debounce(func, delay) {
      let timer = null;
      return function(...args) {
        if (timer) clearTimeout(timer);
        timer = setTimeout(() => {
          func.apply(this, args);
        }, delay);
      };
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM