为了避免函数被触发的频率太高,便用函数节流来实现控制触发频率
var throttle = function(fn, interval){
var _self = fn;//保存需要运行的函数
var timer; //定时器
var firstTime = true;//用于判断是否第一次调用
return function(){
var args = arguments;
var _me = this;
if(firstTime){ //如果第一次调用,直接执行fn
_self.apply(_me, args);
return firstTime = false;
}
if(timer){//定时器还在 ,说明前一段延迟执行还没有完成
return false;
}
timer = setTimeout(function(){//延迟一段时间执行
clearTimeout(timer);
timer = null;
_self.apply(_me, args);
}, interval || 500);
};
}