// Throttle function implementation
function throttle(func, limit) {
let inThrottle;
return function() {
const args = arguments;
const context = this;
if (!inThrottle) {
func.apply(context, args);
inThrottle = true;
setTimeout(() => inThrottle = false, limit);
}
};
}
// Example usage:
const resizeHandler = throttle(function() {
console.log('Window resized');
}, 300);
window.addEventListener('resize', resizeHandler);
func
,另一个是节流的时间间隔 limit
(以毫秒为单位)。inThrottle
来跟踪是否正在节流。如果当前没有在节流,则执行传入的函数,并将 inThrottle
设置为 true
,防止在指定的时间间隔内再次触发。setTimeout
来在指定的时间间隔后重置 inThrottle
,从而允许下一次调用。throttle
来限制回调函数的执行频率,避免频繁触发导致性能问题。上一篇:js window.print
下一篇:js formdata
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站