使用场景:onresize,scroll,mousemove ,mousehover 等
防抖函数如下:连续事件完全触发完成之后,调用一次
function debounce(fn, waitTime) {
let timer = null;
return function () {
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
fn.apply(this, arguments);
timer = null;
}, waitTime);
};
}
节流函数如下:当达到了一定的时间间隔就会执行一次
function throttle(fn, waitTime) {
let timer = null;
return function () {
if (timer) {
return;
}
timer = setTimeout(() => {
fn.apply(this, arguments);
timer = null;
}, waitTime);
};
}