Что такое Throttling

Ответ

Throttling — это техника ограничения частоты выполнения функции, чтобы она вызывалась не чаще, чем раз в определённый промежуток времени. Полезно для оптимизации производительности, например, при обработке событий скролла или ресайза.

Пример с setTimeout:

function throttle(func, delay) {
  let lastCall = 0;
  return function(...args) {
    const now = new Date().getTime();
    if (now - lastCall >= delay) {
      func.apply(this, args);
      lastCall = now;
    }
  };
}

// Использование
window.addEventListener('resize', throttle(() => {
  console.log('Resize handler called');
}, 300));

Отличие от Debouncing: Throttling гарантирует регулярные вызовы, а Debouncing ждёт паузу перед вызовом.