1 基于操作的节流,防抖
var num = 0;
function demo(){
console.log(++num);
}
var timebar
window.onscroll = function(){
clearTimeout(timebar);
timebar = setTimeout(demo,200);
}
window.onscroll = function(){
throttle(demo);
}
function throttle(fn){
clearTimeout(fn.__timebar);
fn.__timebar = setTimeout(fn,200);
}
2 基于时间的节流
var lock = false;
window.onscroll = function(){
if (lock){
return;
}
lock = true;
demo();
setTimeout(function(){
lock = false;
},1000)
}
var lock = false;
window.onscroll = function(){
throttle(demo);
}
function throttle(fn){
if (fn.__lock){
return;
}
fn.__lock = true;
fn();
setTimeout(function(){
fn.__lock = false;
},1000)
}