函数节流:高频事件触发后,在n秒内事件只触发一次,节流函数可以稀释函数的执行频率,应用场景:scroll,touchmove
function throttle(fn,delay){
let can = true
let func = () => {
if(!can) return
can = false
setTimeout(() => {
fn.apply(this,arguments)
can = true
},delay)
}
return func
}
函数防抖:高频事件触发后,在其后n秒内执行一次函数,如果在n秒内触发了,则重现开始计算时间,应用场景:input,联想搜索
function debounce(fn,delay){
return function () {
clearTimeout(timer)
timer = setTimeout(() => {
fn.apply(this,arguments)
},delay)
}
}