固定时间段内的多次触发将被重置为单次触发,防抖就是禁止频繁触发,例如:浏览器滑动,触发频率大约是1次/16ms(刷新率60FPS ,表示的是每秒钟画面更新次数),防抖就是控制滑动触发频率,每次防抖都延长触发时间。
window.onscroll = delay(fn,1000)
function fn(){console.log(123)}
function delay(fn,time){
let timeSet;//利用闭包存储定时器数据
return function(){
clearTimeout(timeSet)
timeSet = setTimeout(fn,time)
}
}
截流就是固定频率的触发。
window.onscroll = delay(fn,1000)
function fn(){console.log(123)}
function delay(fn, time){
let setTime;//利用闭包存储定时器数据
let lock;//利用闭包存储锁
return function (){
if(lock){
return;
}else{
setTime = setTimeout(function(){
fn()
lock = false;
},time)
lock = true;
}
}
}
网友评论