函數節流的目的:防止不是用用戶直接控制的函數,頻繁觸發
函數頻繁被調用的場景:window.onresize,mousemove
函數節流的代碼實現(經典案例):
var throttle = function(fn,interval) {
var self = fn,timer,firstTime = true;
return function() {
var args = arguments,_this = this;
if(firstTime) {
self.apply(_this,args);
return firstTime = false;
}
if(timer) {
return false
}
timer = setTimeout(function() {
clearTimeout(timer);
self.apply(_this,args);
},interval||500)
}
}
window.onresize = throttle(function() {console.log(1)},500)