防抖:短时间内多次触发同一事件,只执行最后一次
function debonce(fn,delay){
let time =null;
return function(){
clearTimeout(timer);
timer=setTimeout(()=>{
fn.apply(this,argument)
},delay)
}
}
应用场景:输入框输入搜索
节流:在规定的时间内不会重复触发回调,大于这个时间才会触发
function throttle(fn,delay){
let valid = true
return function(){
if(vaild){
setTimeout(()=>{
fn.apply(this,argument);
valid = true
},delay)
vaild = false
}
}
}
应用场景:抢购(疯狂点击),页面滚动触发事件