Short Polling: co to jest, jak działa i gdzie jest używany

Autor: IT Sectr Opublikowano: 2026-06-02 Czas czytania: 8 min

Short Polling — to technika interakcji klienta i serwera, w której klient wysyła żądania HTTP w stałych odstępach czasu w celu uzyskania zaktualizowanych danych. Serwer przetwarza każde żądanie natychmiast, zwracając aktualny stan nawet przy braku zmian. Według Amazon Web Services, 2024, Short Polling jest najprostszą w implementacji, ale najmniej efektywną metodą odpytywania, tworzącą nadmierne obciążenie serwera i sieci.

Najważniejsze

  • Short Polling — technika, w której klient wysyła żądania HTTP w stałym odstępie czasu niezależnie od pojawienia się danych.
  • Zasada — klient odpyta serwer za pomocą timera, serwer natychmiast zwraca bieżący stan, nawet jeśli się nie zmienił.
  • Prostota — implementacja nie wymaga asynchronicznego przetwarzania na serwerze, wystarczy standardowy REST endpoint.
  • Wada — nadmierny ruch przy braku aktualizacji: każde żądanie zawiera pełne nagłówki HTTP i przetwarzanie na serwerze.
  • Zastosowanie — proste dashboardy, monitoring z niską częstotliwością odpytywania i systemy wewnętrzne bez wymagań czasu rzeczywistego.

Co to jest Short Polling

Short Polling — to wzorzec komunikacji, w którym klient okresowo wysyła żądania HTTP do serwera z górnym interwałem, a serwer przetwarza każde żądanie synchronicznie i natychmiast zwraca wynik. Interwał odpytywania jest ustawiany po stronie klienta za pomocą timerów i zwykle wynosi od 1 do 60 sekund, w zależności od wymagań dotyczących aktualności danych.

Short Polling jest chronologicznie pierwszym mechanizmem organizacji czasu rzeczywistego w aplikacjach internetowych. Na początku lat 2000., przed pojawieniem się XMLHttpRequest drugiej generacji, strony internetowe używały <meta http-equiv=”refresh”> lub okresowego przeładowywania iframe w celu aktualizacji zawartości. Wraz z pojawieniem się technologii AJAX (Asynchronous JavaScript and XML) w 2005 roku, Short Polling stał się standardowym podejściem do aktualizacji danych bez pełnego przeładowania strony.

Architektura Short Polling

Architektura Short Polling obejmuje trzy komponenty: timer kliencki, żądanie HTTP i program obsługi serwera. Klient uruchamia timer interwałowy, po którego wyzwoleniu wysyłane jest żądanie GET do serwera. Serwer wykonuje zapytanie do bazy danych lub innego źródła, tworzy odpowiedź i natychmiast zwraca ją klientowi. Klient aktualizuje interfejs i czeka na kolejne wyzwolenie timera. Cykl ten powtarza się w nieskończoność, dopóki aplikacja jest aktywna.

Problem nadmiernych żądań

Główny problem Short Polling — nieuniknione puste żądania. Jeśli dane zmieniają się rzadko, większość żądań zwraca wynik „bez zmian”, marnując przepustowość sieci i czas procesora na przetwarzanie. Przy 10 000 klientów z interwałem odpytywania 5 sekund serwer otrzymuje 2 000 żądań na sekundę — znaczna część z nich jest bezużyteczna, jeśli częstotliwość aktualizacji wynosi 1 zdarzenie na minutę.

Jak działa Short Polling

Short Polling działa według prostego cyklu: klient ustawia timer interwałowy z określonym okresem (np. 5000 ms). Przy każdym wyzwoleniu timera klient tworzy żądanie HTTP GET do punktu końcowego serwera, zwykle z parametrem znacznika czasu ostatniej aktualizacji. Serwer otrzymuje żądanie, sprawdza czy są nowe dane po określonym znaczniku i zwraca odpowiedź — albo z nowymi danymi, albo ze wskaźnikiem braku aktualizacji.

Krytyczny parametr konfiguracji Short Polling — interwał odpytywania. Zbyt krótki interwał (poniżej 3 sekund) tworzy duże obciążenie serwera i sieci. Zbyt długi (powyżej 30 sekund) obniża aktualność danych. Optymalny interwał zależy od scenariusza: dla paneli monitorowania — 5–15 sekund, dla kanałów informacyjnych — 30–60 sekund, dla krytycznych alertów — 1–3 sekundy. Wybór interwału jest zawsze kompromisem między aktualnością danych a obciążeniem infrastruktury.

Adaptacyjny interwał odpytywania

Aby zmniejszyć obciążenie w przypadku bezczynności, stosuje się interwał adaptacyjny: jeśli kilka kolejnych żądań zwróci pusty wynik, interwał zwiększa się (np. z 5 do 15 sekund). Gdy pojawią się nowe dane, interwał jest resetowany do wartości minimalnej. Algorytm opóźnienia wykładniczego (exponential backoff) pozwala zmniejszyć liczbę pustych żądań 3–5 razy przy rzadkich aktualizacjach.

Przykład implementacji Short Polling w JavaScript

Rozważmy implementację kliencką Short Polling z użyciem setInterval i Fetch API. Funkcja przyjmuje URL punktu końcowego i interwał odpytywania w milisekundach.

js
function startPolling(url, intervalMs) {
    const lastTimestamp = new Date().toISOString();

    const timerId = setInterval(async () => {
        try {
            const params = new URLSearchParams({
                since: lastTimestamp
            });
            const response = await fetch(url + "?" + params);
            const data = await response.json();

            if (data.updates && data.updates.length > 0) {
                renderUpdates(data.updates);
                console.log("Otrzymano", data.updates.length, "updates");
            }
        } catch (error) {
            console.error("Odpytywanie nie powiodło się:", error);
        }
    }, intervalMs);

    return timerId;
}

const timer = startPolling("/api/updates", 5000);
// clearInterval(timer) do zatrzymania

Kod tworzy interwał odpytywania z okresem 5 sekund i przekazuje do serwera znacznik czasu ostatniej aktualizacji. Serwer może użyć tego parametru do filtrowania danych i zwracania tylko nowych rekordów, zmniejszając ilość przesyłanych informacji. Funkcja zwraca identyfikator timera umożliwiający zatrzymanie odpytywania.

Część serwerowa Short Polling

Implementacja serwerowa Short Polling jest niezwykle prosta — to zwykły REST endpoint, który przyjmuje żądania GET i zwraca odpowiedź JSON z bieżącym stanem lub danymi zmienionymi po określonym znaczniku.

js
const express = require("express");
const app = express();

let items = [];

app.get("/api/updates", (req, res) => {
    const since = req.query.since;
    const filtered = items.filter(item => item.timestamp > since);
    res.json({ updates: filtered });
});

app.listen(3000);

Serwer otrzymuje parametr since i filtruje rekordy, których znacznik czasu przekracza określony. Takie podejście minimalizuje ilość danych w każdej odpowiedzi, zwracając tylko przyrostowe zmiany. W przypadku braku nowych danych serwer zwraca pustą tablicę, a klient kontynuuje odpytywanie zgodnie z harmonogramem.

Short Polling vs Long Polling

Short Polling i Long Polling rozwiązują to samo zadanie — dostarczanie danych z serwera — ale radykalnie różnią się efektywnością. Short Polling używa stałego interwału żądań, tworząc przewidywalne obciążenie, podczas gdy Long Polling utrzymuje połączenie aż do wystąpienia zdarzenia, minimalizując liczbę pustych odpowiedzi.

KryteriumShort PollingLong Polling
Złożoność implementacjiNiska, standardowy RESTŚrednia, przetwarzanie asynchroniczne
Opóźnienie aktualizacjiStałe, do N sekundMinimalne, przy wystąpieniu zdarzenia
Liczba żądańStała, N żądań na minutęWedług zdarzeń, zwykle znacznie mniej
Obciążenie serweraWysokie przy małym interwaleUtrzymywanie połączeń, przetwarzanie asynchroniczne
Ruch przy bezczynnościMaksymalny, każde żądanie z nagłówkamiMinimalne, jedno otwarte połączenie
SkalowanieProste, żądania bezstanoweZłożone, wymagana wspólna kolejka zdarzeń

Wybór między technikami zależy od częstotliwości aktualizacji danych. Jeśli zdarzenia występują częściej niż raz na 10 sekund — oba podejścia dają porównywalne obciążenie, a Short Polling może okazać się prostszy. Jeśli zdarzenia są rzadkie (godziny lub minuty między zmianami) — Long Polling jest preferowany, ponieważ nie tworzy pustych żądań. W scenariuszach pośrednich wybór zależy od ograniczeń infrastrukturalnych i możliwości użycia WebSocket.

Kiedy stosować Short Polling

Short Polling jest stosowany w scenariuszach, w których wymagania dotyczące aktualności danych są niskie, a prostota implementacji ma priorytet nad efektywnością. Najbardziej typowe przypadki to wewnętrzne panele administracyjne, systemy monitorowania z niską częstotliwością alertów i aplikacje, w których opóźnienie 15–30 sekund jest akceptowalne.

  • Panele monitorowania — dashboardy z metrykami aktualizowanymi co 10–30 sekund, niewymagające natychmiastowej reakcji na zmiany.
  • Strony statusu — strony sprawdzania dostępności usług, gdzie dane są aktualizowane co 30–60 sekund, a opóźnienie nie jest krytyczne.
  • Raporty analityczne — wewnętrzne systemy analityczne z okresowym zbieraniem danych, gdzie aktualność do 1 minuty jest akceptowalna.
  • Proste gry — gry wieloosobowe turowych bez wymagań czasu rzeczywistego, gdzie tura aktualizuje się co kilka sekund.
  • Testowanie — scenariusze testów obciążeniowych i debugowania, gdzie Short Polling jest używany jako referencyjna metoda odpytywania do porównania z innymi technikami.

Ważne ograniczenie — Short Polling nie nadaje się do krytycznych czasowo aplikacji (terminale handlowe, systemy alarmowe), gdzie opóźnienie nawet 1 sekundy jest niedopuszczalne. W takich scenariuszach należy użyć WebSocket, Server-Sent Events lub Long Polling. Podczas projektowania systemu z Short Polling należy obliczyć budżet żądań: przy 1 000 klientów z interwałem 5 sekund serwer przetwarza 12 000 żądań na minutę, co wymaga odpowiedniej bazy zasobów.

Często zadawane pytania

Co to jest Short Polling prostymi słowy?

Short Polling — to sytuacja, w której aplikacja co N sekund pyta serwer: „są nowe dane?”, a serwer za każdym razem odpowiada, nawet jeśli nic się nie zmieniło. To jak podchodzenie do skrzynki pocztowej co 5 minut, aby sprawdzić, czy przyszła nowa korespondencja.

Jaki interwał odpytywania wybrać dla Short Polling?

Optymalny interwał Short Polling zależy od scenariusza: 5–10 sekund dla paneli monitorowania, 15–30 sekund dla kanałów informacyjnych, 30–60 sekund dla stron statusu. Interwał powinien być kompromisem między aktualnością danych a obciążeniem serwera. Zacznij od 10 sekund i koryguj na podstawie wyników testów.

Czym różni się Short Polling od Long Polling?

Short Polling — klient ciągle „szarpie” serwer ze stałym interwałem. Long Polling — klient wykonuje jedno żądanie, a serwer utrzymuje je otwarte aż do pojawienia się danych. Short Polling jest prostszy w implementacji, ale tworzy więcej pustych żądań przy rzadkich aktualizacjach.

Kiedy Short Polling jest lepszy od WebSocket?

Short Polling jest prostszy w implementacji niż WebSocket i nie wymaga specjalnego protokołu — działa przez zwykłe żądania HTTP. Short Polling jest uzasadniony w prostych systemach wewnętrznych, gdzie opóźnienie 10–30 sekund jest akceptowalne, a koszty infrastrukturalne utrzymania WebSocket są nieuzasadnione.

Jak zmniejszyć obciążenie serwera przez Short Polling?

Użyj interwału adaptacyjnego: przy braku aktualizacji zwiększaj przerwę między żądaniami 2–3 razy. Dodaj parametr since ze znacznikiem czasu ostatniego żądania, aby serwer zwracał tylko przyrostowe zmiany. Buforuj odpowiedzi po stronie CDN lub serwera proxy, aby zmniejszyć obciążenie backendu.

Podsumowanie

  • Short Polling — technika odpytywania serwera ze stałym interwałem, w której klient wysyła żądania HTTP za pomocą timera niezależnie od pojawienia się nowych danych.
  • Zasada — cykliczne odpytywanie przez setInterval lub rekurencyjny setTimeout ze stałym lub adaptacyjnym interwałem.
  • Zaleta — maksymalna prostota implementacji i debugowania, nie wymaga asynchronicznego przetwarzania na serwerze ani specjalnych protokołów.
  • Wada — nadmierny ruch przy rzadkich aktualizacjach: puste żądania z pełnymi nagłówkami HTTP tworzą bezużyteczne obciążenie.
  • Optymalny interwał — 5–15 sekund dla monitorowania, 15–60 sekund dla danych o niskiej częstotliwości zmian, 1–3 sekundy dla krytycznych scenariuszy.
  • Porównanie — prostszy niż Long Polling, ale mniej efektywny przy rzadkich zdarzeniach; ustępuje WebSocket pod względem wydajności i opóźnienia.
  • Zalecenie — używaj Short Polling tylko do prostych systemów wewnętrznych z niskimi wymaganiami dotyczącymi aktualności danych lub jako metody referencyjnej w testach.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również