1. 基本概念
针对事件高频触发的两种解决策略。
防抖(debounce):在 n 秒内触发,则从新计时,直至最初一次触发,隔 n 秒后执行事件
节流(throttle):每隔 n 秒触发一次
2. 实用场景
防抖:input
节流:scroll,resize
3. 代码
// 防抖
function debounce(func,time){
var timeout=null
return function(){if(timeout!==null){clearTimeout(timeout)
}
timeout=setTimeout(func,time)
}
}
// 节流
function throttle(func,time1){
let time=true;
return function(){if(time===false){return}
time=false
setTimeout(()=>{func.apply(this,arguments)
time=true
},time1)
}
}