手写 节流函数 throttle

1.封装

某个函数在指定时间段内只执行第一次,直到指定时间段结束,周而复始

节流是指定时间段内只执行第一次,也就是这段时间内,只需要响应第一次的请求即可,后续的请求都会被过滤掉,直到下个时间段,重新来过,周而复始。

应用场景:Android 里的屏幕刷新机制,每个帧(16.6ms)内,不管进行了多少次请求界面刷新的操作,只需响应第一次的请求,去向底层注册监听帧信号即可

function throttle(fn, interval = 200) {
  let flag = null;
  return function (...args) {
    if (!flag) {
      flag = true;
      setTimeout(() => {
        flag = false;
        fn.call(this, ...args);
      }, interval);
    }
  };
}

.

原文地址:https://www.cnblogs.com/crazycode2/p/13345809.html