Встречается на собеседованиях • сегодня

Как оптимизировать отправку запроса из поисковой строки на стороне пользователя

Используй debounce или throttle для ограничения частоты запросов при вводе текста.

Debounce задерживает отправку запроса до паузы в вводе (например, 300 мс), а throttle ограничивает частоту запросов (например, 1 раз в 300 мс).

Пример с debounce:

javascript
function debounce(func, delay) {
  let timeoutId;
  return (...args) => {
    clearTimeout(timeoutId);
    timeoutId = setTimeout(() => func(...args), delay);
  };
}

const searchInput = document.getElementById('search');
const fetchResults = debounce((query) => {
  fetch(`/api/search?q=${query}`).then(/* обработка */);
}, 300);

searchInput.addEventListener('input', (e) => fetchResults(e.target.value));

Дополнительно:

  • Отменяй предыдущие запросы с помощью AbortController
  • Кешируй результаты на клиенте
  • Используй индикатор загрузки
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы