手写 节流函数 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); } }; }
.