PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Что такое Long Polling?

DOM и браузер

Long Polling (длинные опросы) — это техника получения обновлений с сервера в почти реальном времени: клиент делает запрос, а сервер держит его открытым, пока не появятся данные или не истечёт таймаут.

Как работает

  1. Клиент отправляет запрос.
  2. Сервер не отвечает сразу, а держит соединение открытым, пока нет новых данных.
  3. Как только данные появились (или вышел таймаут) — сервер отвечает.
  4. Клиент, получив ответ, сразу шлёт новый запрос — и цикл повторяется.
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, но работает везде.

Другие вопросы раздела