节流器:对重复的业务逻辑进行节流控制,执行最后一次操作并取消其他操作,以提高性能。
节流器可在很多UI操作中用到,例如绑定了scroll、mouseover事件等
var throttle = function(){
var isClear = arguments[0],fn;
if(typeof isClear === 'boolean'){
fn = arguments[1];
fn._throttleID && clearTimeout(fn._throttleID) ;
}else{
fn = isClear;
var param = arguments[1];
var p = $.extend({
context:null,
args:[],
timeout:300
},param);
arguments.callee(true,fn);
fn._throttleID = setTimeout(function(){
fn.apply(p.context,p.args);
},p.timeout);
}
}