Sobes.tech
Back to questions
Junior — Middle
83

Имели ли вы практический опыт использования метода debounce в своих проектах?

Answer from AI

sobes.tech AI

Да, метод debounce часто использую для оптимизации обработки событий, которые могут срабатывать слишком часто, например, при вводе текста в поисковую строку или ресайзе окна. Он позволяет задержать выполнение функции до тех пор, пока не прекратится серия быстрых вызовов, что снижает нагрузку и предотвращает лишние операции.

Пример debounce на JavaScript:

function debounce(func, delay) {
  let timer;
  return function(...args) {
    clearTimeout(timer);
    timer = setTimeout(() => func.apply(this, args), delay);
  };
}

const onResize = debounce(() => {
  console.log('Окно изменено');
}, 300);

window.addEventListener('resize', onResize);

В этом примере функция onResize будет вызвана только после того, как пользователь перестанет изменять размер окна на 300 мс.