函数节流(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 毫秒执行一次,以降低触发频率。

JavaScript 节流函数实现:降低事件触发频率

原文地址: https://www.cveoy.top/t/topic/mkMH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录