Как очищать таймер поиска перед новым вводом

20.05.2025 · JavaScript

Как очищать таймер поиска перед новым вводом

Поиск отправляет запрос на каждую букву. Небольшая задержка позволяет дождаться паузы в наборе. Для этого предыдущий таймер нужно отменять.

let timer;
input.addEventListener("input", function() {
  clearTimeout(timer);
  const query = input.value.trim();
  timer = setTimeout(function() {
    if (query.length >= 2) search(query);
  }, 300);
});

input здесь — поле поиска, search — ваша функция запроса. Задержка не защищает от перестановки ответов: старый запрос может завершиться позже нового. Отдельно проверяйте актуальность результата по номеру запроса. При очистке поля сразу уберите старую выдачу. Проверьте быстрый набор и вставку готовой фразы.

Назад в блог

От идеи —
к первому шагу.

Расскажите, что хотите создать.
Обсудим задачу и наметим следующий шаг.