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

Какие есть альтернативы Long Polling и в каких случаях их выбирать?

DOM и браузер

Альтернативы Long Polling: WebSocket (двусторонняя связь в реальном времени), Server-Sent Events (односторонний поток сервер→клиент), обычный polling и HTTP/2 Server Push. Выбор — по типу коммуникации.

Альтернативы и когда выбирать

WebSocket

Постоянное двустороннее соединение, обмен в реальном времени:

const socket = new WebSocket('wss://example.com');
  • Когда: чаты, игры, совместное редактирование, частый двусторонний обмен.
  • Эффективнее long polling (одно соединение, минимум оверхеда).

Server-Sent Events (SSE)

Односторонний поток сервер → клиент по HTTP:

const source = new EventSource('/events');
source.onmessage = (e) => console.log(e.data);
  • Когда: уведомления, лента новостей, обновления котировок — только сервер → клиент.
  • Проще WebSocket, авто-переподключение, работает поверх HTTP.

Обычный Polling

Запросы по таймеру.

  • Когда: редкие обновления, простота важнее задержки, real-time не критичен.

HTTP/2 Server Push (устаревает)

Сервер отправлял ресурсы заранее, но данные push не были доступны из JS, так что заменой long polling он не был. Chrome и Firefox уже убрали его поддержку; вместо него используют 103 Early Hints и preload.

Как выбирать

  • Двусторонний real-time → WebSocket.
  • Только сервер → клиент → SSE.
  • Редкие обновления, простота → polling.
  • Long polling — когда WebSocket/SSE недоступны (старое окружение).

Коротко для собеседования

Альтернативы Long Polling: WebSocket (двусторонний real-time — чаты, игры), Server-Sent Events (односторонний поток сервер→клиент — уведомления, котировки, проще WS с авто-reconnect), обычный polling (редкие обновления, простота). Выбор: двусторонний → WebSocket, сервер→клиент → SSE, редкое → polling.

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