美文网首页
函数节流和函数防抖

函数节流和函数防抖

作者: 前端咸蛋黄 | 来源:发表于2019-05-01 21:40 被阅读0次
  • 函数节流: 指定时间间隔内只会执行一次任务
  • 函数防抖: 任务频繁触发的情况下,只有任务触发的间隔超过指定间隔的时候,任务才会执行

例如:输入框输入文字如下:1111111111111111111111...

  • 函数节流:当用户持续输入1的过程中,从你开始输入1开始计时,到第1s,执行函数
  • 函数防抖:当用户持续输入1的过程中,并不会执行函数,当用户停止输入1s后,执行函数

以下是实现的代码,我忘了引用谁的了……

函数节流
<input>
<script>
  let text = document.querySelector("input")
  function throttle(fn, interval = 1000) {
    let canRun = true;
    return function () {
        if (!canRun) return;
        canRun = false;
        setTimeout(() => {fn();canRun = true;}, interval);
    };
  }
  text.oninput = throttle(()=>{console.log(text.value)})
</script>
函数防抖
<input>
<script>
  let text = document.querySelector("input")
  function debounce(fn, interval = 1000) {
    let timeout = null;
    return function () {
        clearTimeout(timeout);
        timeout = setTimeout(() => {fn()}, interval);
    };
  }
  text.oninput = debounce(()=>{console.log(text.value)})
</script>

相关文章

网友评论

      本文标题:函数节流和函数防抖

      本文链接:https://www.haomeiwen.com/subject/icnwnqtx.html