为了解决函数被触发的频率太高,多次触发500ms之后的触发才会有效。
var throttle = function (fn,interval) {
var __self = fn,
timer,
firstTime = true;
return function () {
var args = arguments,
__me = this;
if(firstTime){//第一次直接执行
__self.apply(__me,args);
return firstTime = false;
}
if(timer){
return false;
}
timer = setTimeout(function () {
clearTimeout(timer);
timer = null;
__self.apply(__me,args);//执行原函数
},interval||500);
}
};
//浏览器窗口大小变化被调用
window.onresize = throttle(function () {
console.log(1);
},500);