防抖(debounce):
用于处理持续触发事件。持续触发事件,在n秒内没有继续触发事件,则执行一次事件处理函数,如果在n秒内触发了该事件,则重新开始计时。
var timer;
function debounce( fn ) {
clearTimeout(timer)
timer = setTimeout(fn,1000)
}
//此案例在1000毫秒以内如果没有触发,则执行一次fn函数,如果触发了,则从新计时
节流(throttle):
用于处理持续触发事件。在n秒内持续触发事件,仅执行一次事件处理函数。
var valid = true;
function throttle( fn ){
if(!valid) return false;
valid = false
setTimeout(() => {
fn()
valid = true;
}, 1000)
}
//此案例在1000毫秒内,如果持续触发多次事件,仅会执行一次。