防抖
对于短时间内连续触发的事件,防抖的含义就是让某个时间期限内,事件处理函数只执行一次。( 滚动条移动触发事件)
function debounce(fn){
let timer = null //借助闭包
return function() {
if(timer){
clearTimeout(timer)
}
timer = setTimeout(fn,3000) // 简化写法
}
function fn () {
// 事件处理函数
}
节流
在函数执行一次之后,该函数在指定的时间期限内不再工作,直至过了这段时间才重新生效。(双击)
let valid = false
throttle(){
if(valid){
return
}else{
valid = true
setTimeout(() => {
fn()
valid = false;
}, 3000)
}
}
网友评论