如果短时间内大量触发同一事件,那么在函数执行一次之后,该函数在指定的时间期限内不再工作,直至过了这段时间才重新生效。反复读
function throttle(fn,delay){
var vali=true;
return function(){
if(vali===false){
return false;
}
vali=true;
setTimeout(()=>{
fn();
vali=true;
},delay)
}
}
触发事件后,在指定时间内,如果没有再次触发,就执行操作,如果在指定时间内,再次触发该事件,取消上一次的待执行操作,新建一个操作,反复
function debounce(fn,delay){
var timer;
if(timer){
clearTimeout(timer)
}
timer=setTimeout(()=>{
fn();
}
,delay)
}