函数防抖

34 阅读1分钟

函数防抖

限制执行次数,多次密集的触发只执行一次

  • 防止抖动,停了再执行下一步
  • 例如,一个搜索输入框,等输入停止之后,在触发搜索
  <input type="text" id="input">
  <script>
    let input = document.querySelector('input')
    const debounce = (fn,initial)=>{
      let timer = null;
      return ()=>{
        clearTimeout(timer)
        timer = setTimeout(fn, initial);
      }
    }
    input.oninput = debounce(function() {
      console.log(input.value);
    },500)
  </script>