美文网首页
函数节流(throttle) 与 函数防抖(debounce)

函数节流(throttle) 与 函数防抖(debounce)

作者: good__day | 来源:发表于2019-02-12 20:56 被阅读0次

    一、概念

    函数节流: 指定时间间隔内只会执行一次任务;

    函数防抖: 任务频繁触发的情况下,只有任务触发的间隔超过指定间隔的时候,任务才会执行。

    二、实现

    function throttle(fn, interval = 300) {

      let canRun = true;

      return function () {

          if (!canRun) return;

          canRun = false;

          setTimeout(() => {

              fn.apply(this, arguments);

              canRun = true;

          }, interval);

      };

    }

    function debounce(fn, interval = 300) {

      let timeout = null;

      return function () {

          clearTimeout(timeout);

          timeout = setTimeout(() => {

              fn.apply(this, arguments);

          }, interval);

      };

    }

    参考: https://juejin.im/entry/58c0379e44d9040068dc952f

    相关文章

      网友评论

          本文标题:函数节流(throttle) 与 函数防抖(debounce)

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