Встречается на собеседованиях • сегодня
Как оптимизировать отправку поисковых запросов на сервер
Используйте 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);
}
};
}Также можно кешировать результаты на клиенте, чтобы избежать повторных запросов для одинаковых данных.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы