前端开发

防抖debounce

2020-11-30  本文已影响0人  liuyeqing
应用场景,用户频繁操作,减少不必要的重复操作
const input = document.getElementById('input');
let timer  = null;
input.addEventListener('keyup', function(){
  if(timer){
    clearTimeout(timer);
  }
    timer = setTimeout(()=>{
      //这里执行频繁操作时间
      console.log(input.value);

      //记得清空定时器
      timer = null;
    },500)
})

封装的debounce
function debounce(fn ,delay = 500){
  return function(){
    if(timer){
      clearTimeout(timer);
    }
    timer = setTimeout(()=>{
        fn.apply(this,arguments);
        timer = null;
    },delay)
  }  
}

input.addEventListener('keyup',debounce(function(){
  console.log(input.value);
}),600)
上一篇 下一篇

猜你喜欢

热点阅读