函数防抖
抖动一般是持续的,函数防抖就是防止持续执行。
方法: 在一段时间内,只执行一次 (delay时间内,就算持续触发也不执行)
function debounce(func,delay){
let timer
return function(){
clearTimeout(timer)
timer = setTimeout(()=>{
func.apply(this,arguments)
},delay)
}
}
函数节流
首次触发后,间隔delay后执行。在这之前,无论再触发多少次都不执行。
function throttle(func,delay){
let run = true
return function(){
if(!run){
return
}
run = false
setTimeout(()=>{
func.apply(this,arguments)
run = true
},delay)
}
}