Что такое Long Polling?
DOM и браузер
Long Polling (длинные опросы) — это техника получения обновлений с сервера в почти реальном времени: клиент делает запрос, а сервер держит его открытым, пока не появятся данные или не истечёт таймаут.
Как работает
- Клиент отправляет запрос.
- Сервер не отвечает сразу, а держит соединение открытым, пока нет новых данных.
- Как только данные появились (или вышел таймаут) — сервер отвечает.
- Клиент, получив ответ, сразу шлёт новый запрос — и цикл повторяется.
async function poll() {
const res = await fetch('/updates'); // сервер держит до появления данных
const data = await res.json();
handle(data);
poll(); // сразу новый запрос
}Отличие от обычного polling
- Обычный polling — запросы по таймеру (каждые N секунд), много пустых ответов.
- Long polling — сервер держит запрос, ответ приходит по событию — меньше пустых запросов и меньше задержка.
Long Polling против WebSocket
- Long Polling — поверх обычного HTTP, работает везде, но накладнее (переустановка соединения).
- WebSocket — постоянное двустороннее соединение, эффективнее для интенсивного обмена.
Long polling — «запасной» вариант, когда WebSocket недоступен.
Коротко для собеседования
Long Polling — сервер держит HTTP-запрос открытым до появления данных или таймаута, затем отвечает, и клиент сразу шлёт новый запрос. Эмулирует push поверх HTTP с меньшей задержкой, чем обычный polling. Уступает WebSocket, но работает везде.