防抖更关注的是两次触发的时间间隔
在连续触发的过程中,可能只有最后一次才执行
防抖// 防抖实现
function debounce(fn, delay) {
var timer;
return function(...args) {
clearTimeout(timer);
timer = setTimeout(() => {
fn(...args);
}, delay)
}
}
节流关注的是两次执行的时间间隔
在连续触发的过程中,每间隔一段时间才会执行一次
节流// 节流实现
function throttle(fn, delay) {
var timer;
return function(...args) {
if (timer) {
return;
}
timer = setTimeout(() => {
fn(...args);
timer = undefined;
}, delay);
}
}
网友评论