前端优化之防抖节流

58 阅读1分钟

前端性能优化

防抖

防抖:设定一个时间,两次操作的间隔时间超过设定时间,则执行。未超过设定时间则销毁上一次操作

const debounces = (func, delay = 1000) => {
  if (window.timer) {
    clearTimeout(window.timer);
  }
  window.timer = setTimeout(() => {
    func();
  }, delay);
};

节流

节流:设定一个间隔时间,间隔时间内无论触发多少次操作,都只执行一次操作(第一次操作)

const throttle = (func, delay = 500) => {
  let timer = null;
  return function () {
    if (timer !== null) {
      return;
    }
    timer = setTimeout(() => {
      func();
      timer = null;
    }, delay);
  };
};