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

Как оптимизировать отправку поисковых запросов на сервер

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

Debounce задерживает запрос до окончания ввода (например, после паузы в 300 мс):

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

const search = debounce((query) => fetchResults(query), 300);
input.addEventListener('input', (e) => search(e.target.value));

text

**Throttle** ограничивает частоту запросов (например, не чаще чем раз в 300 мс):  
```javascript
function throttle(func, limit) {
  let inThrottle;
  return (...args) => {
    if (!inThrottle) {
      func(...args);
      inThrottle = true;
      setTimeout(() => (inThrottle = false), limit);
    }
  };
}

Также можно кешировать результаты на клиенте, чтобы избежать повторных запросов для одинаковых данных.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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