В чем разница между Polling и Long Polling

«В чем разница между Polling и Long Polling» — вопрос из категории Асинхронность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Polling — это периодические запросы к серверу (например, каждые 5 секунд) для проверки обновлений. Неэффективен, так как создает лишнюю нагрузку, даже если данных нет.

Long Polling — запрос к серверу остается открытым, пока не появятся новые данные или не истечет таймаут. После получения ответа клиент сразу отправляет новый запрос. Экономит ресурсы, так как уменьшает количество пустых запросов.

Пример Polling:

setInterval(async () => {
  const response = await fetch('/updates');
  // обработка данных
}, 5000);

Пример Long Polling:

async function fetchUpdates() {
  const response = await fetch('/updates-long');
  // обработка данных
  fetchUpdates(); // рекурсивный вызов
}
fetchUpdates();