防抖:指的是触发事件后的n秒内函数只执行一次,若在n秒内再次触发则以再次触发的时间为基准重新计算。比如我点击一共按钮,2秒后调用函数,在1秒时又点击了,这时就是从1秒时重新开始计算。
function debounce() {
let timer = null;
return () => {
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
console.log("防抖测试");
}, 500);
};
}
节流:连续发生的事件在n秒内只执行一次函数。也就是无论我在n秒触发几次事件,函数都会在n秒后进行一次调用。
function throttle() {
let flag = true;
return () => {
if (!flag) return;
flag = false;
setTimeout(() => {
console.log("节流测试");
flag = true;
}, 1000);
};
}
浙公网安备 33010602011771号