美文网首页
什么是防抖和节流?有什么区别?如何实现?

什么是防抖和节流?有什么区别?如何实现?

作者: 小杰66 | 来源:发表于2021-03-27 19:18 被阅读0次

防抖
高频事件在触发后n秒内只会执行一次,如果n秒内再次触发则重新计算时间

function debounce(fn, time = 500) {
  let t;
  return function () {
    if (t) {
      clearTimeout(t);
      t = null;
    }
    const context = this;
    t = setTimeout(function () {
      fn.apply(context, arguments);
      t = null;
    }, time);
  };
}

节流
高频事件在触发后n秒内只会执行一次,如果n秒内再次触发则pass

function throttle(fn, time = 500) {
  let t;
  return function () {
    if (t) return;
    const context = this;
    t = setTimeout(function () {
      fn.apply(context, arguments);
      t = null;
    }, time);
  };
}

相关文章

网友评论

      本文标题:什么是防抖和节流?有什么区别?如何实现?

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