JavaScript 节流函数实现:降低事件触发频率
函数节流(throttle)是指在一段时间内只能触发一次事件,即降低事件触发频率的一种策略。常用于处理一些高频率的事件,如窗口大小改变、页面滚动等。
以下是一个简单的节流函数的实现:
function throttle(func, delay) {
let timer = null;
return function(...args) {
const context = this;
if (!timer) {
timer = setTimeout(() => {
func.apply(context, args);
timer = null;
}, delay);
}
};
}
这个函数接受两个参数:要节流的函数和节流时间间隔(单位为毫秒)。它返回一个新函数,这个新函数会在经过指定的时间后才会执行原函数。如果在这段时间内再次触发函数,则会被忽略。
使用方法如下:
function handleResize() {
console.log('resized');
}
window.addEventListener('resize', throttle(handleResize, 1000));
在这个例子中,我们将 handleResize 函数传递给 throttle 函数,并指定了时间间隔为 1000 毫秒。然后,我们将返回的新函数添加到 resize 事件监听器中。这样,当浏览器窗口大小改变时,handleResize 函数会在每隔 1000 毫秒执行一次,以降低触发频率。
原文地址: https://www.cveoy.top/t/topic/mkMH 著作权归作者所有。请勿转载和采集!