function throttle(func, wait){ var resulTime = 0; return function (){ var new = + new Date(); //时间戳 var _this = this; vat args = arguments; // now - resulTime只有大于wait才会执行,在wait时间内只执行一次 if(now - resulTime>wait){ func.apply(_this,args); resulTime = now; } } }
2.设置定时器
第二种设置定时器(时间不会立即执行,在 wait 时间后开始执行)
1 2 3 4 5 6 7 8 9 10 11 12 13
function throttle(func, wait) { var timeout; return function() { var _this = this; var args = arguments; if (!timeout) { timeout = setTimeout(function() { func.apply(_this, args); timeout = null; }, wait); } }; }
1 2 3 4 5 6 7 8
//使用方法 function scrollThrottle() { console.log('heyushuo'); } var optimizeThrottle = throttle(scrollThrottle, 3000); document.addEventListener('scroll', function() { optimizeThrottle(); });
function throttle(func, wait){ var resulTime = 0; return function (){ var new = + new Date(); //时间戳 var _this = this; vat args = arguments; // now - resulTime只有大于wait才会执行,在wait时间内只执行一次 if(now - resulTime>wait){ func.apply(_this,args); resulTime = now; } } }
2.设置定时器
第二种设置定时器(时间不会立即执行,在 wait 时间后开始执行)
1 2 3 4 5 6 7 8 9 10 11 12 13
function throttle(func, wait) { var timeout; return function() { var _this = this; var args = arguments; if (!timeout) { timeout = setTimeout(function() { func.apply(_this, args); timeout = null; }, wait); } }; }
1 2 3 4 5 6 7 8
//使用方法 function scrollThrottle() { console.log('heyushuo'); } var optimizeThrottle = throttle(scrollThrottle, 3000); document.addEventListener('scroll', function() { optimizeThrottle(); });