防抖:一触发就计时,一直触发,重新计时,直到不再触发,开始执行(重新计时)
function Debounce(fn,time){
let timer = null;
return ()=>{
if(timer)clearTimeout(timer);
timer = setTimeout(()=>{
timer = null;
fn.apply(this,arguments);
},time);
}
}
节流:一触发就执行,一直触发,等待到一定时间才执行(等待一定时间)
function Throtte(fn,time){
let activeTime = 0;
return ()=>{
const current = Date.now();
if(current - activeTime > time){
fn.apply(this,arguments);
activeTime = Date.now();
}
}
}