Short Polling: co to je, jak funguje a kde se používá

Autor: IT Sectr Publikováno: 2026-06-02 Doba čtení: 8 min

Short Polling — je technika interakce klienta a serveru, při které klient odesílá HTTP požadavky v pevných časových intervalech pro získání aktualizovaných dat. Server zpracuje každý požadavek okamžitě a vrátí aktuální stav, i když nedošlo k žádným změnám. Podle Amazon Web Services, 2024 je Short Polling nejsnazší na implementaci, ale nejméně efektivní metoda dotazování, která vytváří nadměrné zatížení serveru a sítě.

Hlavní body

  • Short Polling — technika, při které klient odesílá HTTP požadavky v pevném intervalu bez ohledu na výskyt dat.
  • Princip — klient se dotazuje serveru pomocí časovače, server okamžitě vrátí aktuální stav, i když se nezměnil.
  • Jednoduchost — implementace nevyžaduje asynchronní zpracování na serveru, stačí standardní REST endpoint.
  • Nevýhoda — nadměrný provoz při absenci aktualizací: každý požadavek obsahuje kompletní HTTP hlavičky a zpracování na serveru.
  • Použití — jednoduché dashboardy, monitoring s nízkou frekvencí dotazování a interní systémy bez požadavků na reálný čas.

Co je Short Polling

Short Polling — je komunikační vzor, při kterém klient periodicky odesílá HTTP požadavky na server s předem nastaveným intervalem a server zpracovává každý požadavek synchronně a okamžitě vrátí výsledek. Interval dotazování se nastavuje na straně klienta pomocí časovačů a obvykle se pohybuje od 1 do 60 sekund v závislosti na požadavcích na aktuálnost dat.

Short Polling je chronologicky první mechanismus organizace reálného času ve webových aplikacích. Na počátku 21. století, před příchodem XMLHttpRequest druhé generace, webové stránky používaly <meta http-equiv=”refresh”> nebo periodické znovunačítání iframů pro aktualizaci obsahu. S příchodem technologie AJAX (Asynchronous JavaScript and XML) v roce 2005 se Short Polling stal standardním přístupem pro aktualizaci dat bez úplného znovunačtení stránky.

Architektura Short Polling

Architektura Short Polling zahrnuje tř9i komponenty: časovač klienta, HTTP požadavek a obslužný program serveru. Klient spustí intervalový časovač, při jehož aktivaci se odešle GET požadavek na server. Server provede dotaz do databáze nebo jiného zdroje, vytvoří odpověď a okamžitě ji vrátí klientovi. Klient aktualizuje rozhraní a čeká na další aktivaci časovače. Tento cyklus se nekonečně opakuje, dokud je aplikace aktivní.

Problém nadměrných požadavků

Hlavní problém Short Polling — nevyhnutelné prázdné požadavky. Pokud se data mění zřídka, většina požadavků vrátí výsledek „bez změn“, čímž plýtvá šířkou pásma sítě a časem procesoru na zpracování. Při 10 000 klientech s intervalem dotazování 5 sekund server přijímá 2 000 požadavků za sekundu — značná část z nich je zbytečná, pokud je frekvence aktualizací 1 událost za minutu.

Jak funguje Short Polling

Short Polling funguje podle jednoduchého cyklu: klient nastaví intervalový časovač s určitou periodou (např. 5000 ms). Při každé aktivaci časovače klient vytvoří HTTP GET požadavek na serverový endpoint, obvykle s parametrem časového razítka poslední aktualizace. Server obdrží požadavek, zkontroluje přítomnost nových dat po uvedeném razítku a vrátí odpověď — buď s novými daty, nebo s indikátorem absence aktualizací.

Kritický parametr konfigurace Short Polling — interval dotazování. Příliš krátký interval (méně než 3 sekundy) vytváří vysoké zatížení serveru a sítě. Příliš dlouhý interval (více než 30 sekund) snižuje aktuálnost dat. Optimální interval závisí na scénáři: pro monitorovací panely — 5–15 sekund, pro zpravodajské kanály — 30–60 sekund, pro kritické alarmy — 1–3 sekundy. Výběr intervalu je vždy kompromisem mezi aktuálností dat a zatížením infrastruktury.

Adaptivní interval dotazování

Pro snížení zatížení při nečinnosti se používá adaptivní interval: pokud několik po sobě jdoucích požadavků vrátí prázdný výsledek, interval se zvýší (např. z 5 na 15 sekund). Když se objeví nová data, interval se resetuje na minimální hodnotu. Algoritmus exponenciálního zpoždění (exponential backoff) umožňuje snížit počet prázdných požadavků 3–5krát při vzácných aktualizacích.

Příklad implementace Short Polling v JavaScriptu

Podívejme se na klientskou implementaci Short Polling pomocí setInterval a Fetch API. Funkce přijímá URL endpointu a interval dotazování v milisekundách.

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("Přijato", data.updates.length, "updates");
            }
        } catch (error) {
            console.error("Polling selhal:", error);
        }
    }, intervalMs);

    return timerId;
}

const timer = startPolling("/api/updates", 5000);
// clearInterval(timer) pro zastavení

Kód vytváří interval dotazování s periodou 5 sekund a předává serveru časové razítko poslední aktualizace. Server může tento parametr použít pro filtrování dat a vracení pouze nových záznamů, čímž se sníží objem přenášených informací. Funkce vrací identifikátor časovače pro možnost zastavení dotazování.

Serverová část Short Polling

Serverová implementace pro Short Polling je mimořádně jednoduchá — je to běžný REST endpoint, který přijímá GET požadavky a vrací JSON odpověď s aktuálním stavem nebo daty změněnými po uvedeném razítku.

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);

Server obdrží parametr since a filtruje záznamy, jejichž časové razítko přesahuje uvedenou hodnotu. Tento přístup minimalizuje objem dat v každé odpovědi, když vrací pouze inkrementální změny. Při absenci nových dat server vrátí prázdné pole a klient pokračuje v dotazování podle plánu.

Short Polling vs Long Polling

Short Polling a Long Polling řeší stejný úkol — doručení dat ze serveru — ale radikálně se liší účinností. Short Polling používá pevný interval požadavků, čímž vytváří předvídatelné zatížení, zatímco Long Polling udržuje spojení až do výskytu události, čímž minimalizuje počet prázdných odpovědí.

KritériumShort PollingLong Polling
Složitost implementaceNízká, standardní RESTStřední, asynchronní zpracování
Zpoždění aktualizacíFixní, až N sekundMinimální, při výskytu události
Počet požadavkůKonstantní, N požadavků za minutuPodle událostí, obvykle mnohem méně
Zatížení serveruVysoké při malém intervaluUdržování spojení, asynchronní zpracování
Provoz při nečinnostiMaximální, každý požadavek s hlavičkamiMinimální, jedno otevřené spojení
ŠkálováníJednoduché, bezstavové požadavkySložité, vyžaduje sdílenou frontu událostí

Volba mezi technikami závisí na frekvenci aktualizací dat. Pokud se události dějí častěji než jednou za 10 sekund — oba přístupy poskytují srovnatelné zatížení a Short Polling může být jednodušší. Pokud jsou události vzácné (hodiny nebo minuty mezi změnami) — Long Polling je výhodnější, protože nevytváří prázdné požadavky. Pro přechodné scénáře závisí volba na infrastrukturních omezeních a možnosti použít WebSocket.

Kdy se používá Short Polling

Short Polling se používá ve scénářích, kde jsou požadavky na aktuálnost dat nízké a jednoduchost implementace má přednost před efektivitou. Nejtypičtějšími případy jsou interní administrativní panely, monitorovací systémy s nízkou frekvencí alertů a aplikace, kde je zpoždění 15–30 sekund přijatelné.

  • Monitorovací panely — dashboardy s metrikami, které se aktualizují každých 10–30 sekund a nevyžadují okamžitou reakci na změny.
  • Stránky stavu — stránky pro kontrolu dostupnosti služeb, kde se data aktualizují v intervalu 30–60 sekund a zpoždění není kritické.
  • Analytické zprávy — interní analytické systémy s periodickým sběrem dat, kde je aktuálnost do 1 minuty přijatelná.
  • Jednoduché hry — multiplayerové hry na táhy bez požadavků na reálný čas, kde se tah aktualizuje každých několik sekund.
  • Testování — scénáře zátěžového testování a ladění, kde se Short Polling používá jako referenční metoda dotazování pro srovnání s jinými technikami.

Důležité omezení — Short Polling není vhodný pro časově kritické aplikace (obchodní terminály, systémy nouzového varování), kde je zpoždění i 1 sekundy nepřijatelné. V takových scénářích je třeba použít WebSocket, Server-Sent Events nebo Long Polling. Při navrhování systému se Short Pollingem je třeba vypočítat rozpočet požadavků: při 1 000 klientech s intervalem 5 sekund server zpracovává 12 000 požadavků za minutu, což vyžaduje odpovídající základnu zdrojů.

Často kladené otázky

Co je Short Polling jednoduchými slovy?

Short Polling — je situace, kdy aplikace každých N sekund ptá serveru: „jsou nová data?“, a server pokaždé odpoví, i když se nic nezměnilo. Je to jako chodit ke schránce každých 5 minut, abyste zjistili, zda přišel nový dopis.

Jaký interval dotazování zvolit pro Short Polling?

Optimální Short Polling interval závisí na scénáři: 5–10 sekund pro monitorovací panely, 15–30 sekund pro zpravodajské kanály, 30–60 sekund pro stránky stavu. Interval by měl být kompromisem mezi aktuálností dat a zatížením serveru. Začněte s 10 sekundami a upravujte na základě výsledků testování.

Čím se liší Short Polling od Long Polling?

Short Polling — klient neustále „škubá“ serverem s pevným intervalem. Long Polling — klient odešle jeden požadavek a server jej drží otevřený, dokud se neobjeví data. Short Polling je jednodušší na implementaci, ale vytváří více prázdných požadavků při vzácných aktualizacích.

Kdy je Short Polling lepší než WebSocket?

Short Polling je jednodušší na implementaci než WebSocket a nevyžaduje speciální protokol — funguje prostřednictvím běžných HTTP požadavků. Short Polling je ospravedlnitelný pro jednoduché interní systémy, kde je zpoždění 10–30 sekund přijatelné a infrastrukturní náklady na údržbu WebSocket nejsou ospravedlnitelné.

Jak snížit zatížení serveru ze Short Polling?

Použijte adaptivní interval: při absenci aktualizací zvyšte páuzu mezi požadavky 2–3krát. Přidejte parametr since s časovým razítkem posledního požadavku, aby server vracel pouze inkrementální změny. Ukládejte odpovědi do mezipaměti na straně CDN nebo proxy serveru pro snížení zatížení backendu.

Shrnutí

  • Short Polling — technika dotazování serveru s pevným intervalem, při které klient odesílá HTTP požadavky pomocí časovače bez ohledu na výskyt nových dat.
  • Princip — cyklické dotazování prostřednictvím setInterval nebo rekurzivního setTimeout s konstantním nebo adaptivním intervalem.
  • Výhoda — maximální jednoduchost implementace a ladění, nevyžaduje asynchronní zpracování na serveru ani speciální protokoly.
  • Nevýhoda — nadměrný provoz při vzácných aktualizacích: prázdné požadavky s plnými HTTP hlavičkami vytvářejí zbytečné zatížení.
  • Optimální interval — 5–15 sekund pro monitoring, 15–60 sekund pro data s nízkou frekvencí změn, 1–3 sekundy pro kritické scénáře.
  • Srovnání — jednodušší než Long Polling, ale méně účinný při vzácných událostech; horší než WebSocket z hlediska výkonu a zpoždění.
  • Doporučení — používejte Short Polling pouze pro jednoduché interní systémy s nízkými požadavky na aktuálnost dat nebo jako referenční metodu v testech.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také