用定时器实现
防抖:在某一时间段内,多次接到同一事件,只执行最后一次触发的事件。比如一个按钮在1s内连续触发多次,而我们设置的时间间隔是1s,则只执行最后一次的点击事件。
function fangdou(fn,dealy){
var t = null;
return function(){
if(t){
t = null;
}
t = setTimeout(function(){
this.apply(fn,arguments);
},dealy)
}
}
节流:在某一时间段内,多次接到同一事件,执行第一次触发的事件。比如一个按钮在1s内连续触发多次,而我们设置的时间间隔是1s,则只执行第一次的点击事件。
function jieliu(fn,dealy){
var t = null;
return function(fn,arguments){
if(!t){
t = setTimeout(function(){
this.apply(fn,arguments);
t = null;
},dealy);
}
}
}