防抖:一段时间后执行触发函数,期间再次触发函数则将重新计算时间。
// 防抖
function debounce(fn) {
let timeout = null;
return function () {
clearTimeout(timeout);
setTimeout(function () {
fn.apply(this, arguments);
}, 500);
}
}
节流:一段时间后执行触发函数,期间无论触发多少次都不执行,直至完成该次触发函数。
// 节流
function throttle(fn) {
let flag = null;
return function () {
if (flag) return;
setTimeout(function () {
fn.apply(this, arguments);
flag = null;
}, 500)
}
}