Short Polling: mi ez, hogyan működik és hol használják

Szerző: IT Sectr Megjelenés: 2026-06-02 Olvasási idő: 8 perc

Short Polling — ügyfél-szerver interakciós technika, melynek során az ügyfél fix időközönként HTTP-kéréseket küld a frissített adatok lekéréséhez. A szerver minden kérést azonnal feldolgoz, és visszaadja az aktuális állapotot, még akkor is, ha nincs változás. A Amazon Web Services, 2024 szerint a Short Polling a legegyszerűbben megvalósítható, de a legkevésbé hatékony lekérdezési módszer, amely túlzott terhelést okoz a szerveren és a hálózaton.

Fő pontok

  • Short Polling — technika, amelynél az ügyfél HTTP-kéréseket küld fix időközönként, függetlenül az adatok megjelenésétől.
  • Elv — az ügyfél időzítővel lekérdezi a szervert, a szerver azonnal visszaadja az aktuális állapotot, még ha nem is változott.
  • Egyszerűség — a megvalósítás nem igényel aszinkron feldolgozást a szerveren, elég egy szabványos REST-végpont.
  • Hátrány — túlzott forgalom frissítések hiányában: minden kérés teljes HTTP-fejléceket és szerverfeldolgozást tartalmaz.
  • Alkalmazás — egyszerű irányítópultok, alacsony lekérdezési gyakoriságú megfigyelőrendszerek és belső rendszerek valós idejű követelmények nélkül.

Mi az a Short Polling

Short Polling — olyan kommunikációs minta, amelyben az ügyfél időszakosan HTTP-kéréseket küld a szervernek előre meghatározott időközönként, a szerver pedig minden kérést szinkron módon dolgoz fel, és azonnal visszaadja az eredményt. A lekérdezési időközt az ügyfél oldalon állítják be időzítők segítségével, és általában 1 és 60 másodperc között van, az adatok aktualitására vonatkozó követelményektől függően.

A Short Polling kronológiailag az első mechanizmus a valós idejű működés megszervezésére webes alkalmazásokban. A 2000-es évek elején, a második generációs XMLHttpRequest megjelenése előtt, a weboldalak <meta http-equiv=”refresh”> vagy az iframe-ek időszakos újratöltését használták a tartalom frissítéséhez. Az AJAX (Asynchronous JavaScript and XML) technológia 2005-ös megjelenésével a Short Polling a szabványos megközelítéssé vált az adatok frissítésére a lap teljes újratöltése nélkül.

A Short Polling architektúrája

A Short Polling architektúrája három összetevőből áll: ügyfél időzítőből, HTTP-kérésből és szerver-kezelőből. Az ügyfél elindít egy intervallum-időzítőt, melynek élesztésekor egy GET-kérés kerül elküldésre a szervernek. A szerver lekérdezést hajt végre az adatbázisban vagy más forrásban, választ képez, és azonnal visszaküldi az ügyfélnek. Az ügyfél frissíti a felületet és vár a következő időzítő élesztésre. Ez a ciklus végtelenül ismétlődik, amíg az alkalmazás aktív.

A túlzott kérések problémája

A Short Polling fő problémája — az elkerülhetetlen üres kérések. Ha az adatok ritkán változnak, a kérések többsége „nincs változás” eredményt ad vissza, pazarolva a hálózati sávszélességet és a processzoridőt a feldolgozásra. 10 000 ügyfél és 5 másodperces lekérdezési időköz esetén a szerver másodpercenként 2 000 kérést kap — amelyek jelentős része haszontalan, ha a frissítések gyakorisága 1 esemény percenként.

Hogyan működik a Short Polling

Short Polling egy egyszerű ciklus szerint működik: az ügyfél beállít egy intervallum-időzítőt meghatározott periódussal (pl. 5000 ms). Minden időzítő élesztéskor az ügyfél HTTP GET kérést küld a szerver végpontjára, általában az utolsó frissítés időbélyegének paraméterével. A szerver megkapja a kérést, ellenőrzi új adatok meglétét a megadott időbélyeg után, és választ ad — akár új adatokkal, akár a frissítések hiányának jelzésével.

A Short Polling kritikus konfigurációs paramétere — a lekérdezési időköz. A túl rövid időköz (3 másodperc alatt) magas terhelést okoz a szerveren és a hálózaton. A túl hosszú időköz (30 másodperc felett) csökkenti az adatok aktualitását. Az optimális időköz a forgatókönyvtől függ: monitorozási panelekhez — 5–15 másodperc, hírcsatornákhoz — 30–60 másodperc, kritikus riasztásokhoz — 1–3 másodperc. Az időköz választása mindig kompromisszum az adatok aktualitása és az infrastruktúra terhelése között.

Adaptív lekérdezési időköz

A terhelés csökkentéséhez inaktivitás idején adaptív időközt használnak: ha több egymást követő kérés üres eredményt ad, az időköz megnő (pl. 5-ről 15 másodpercre). Új adatok megjelenésekor az időköz visszaállítódik a minimális értékre. Az exponenciális késleltetési algoritmus (exponential backoff) lehetővé teszi az üres kérések számának 3–5-szörös csökkentését ritka frissítések esetén.

Short Polling megvalósítási példa JavaScriptben

Nézzük meg a Short Polling ügyfél oldali megvalósítását a setInterval és a Fetch API használatával. A függvény elfogadja a végponc URL-jét és a lekérdezési időközt ezredmásodpercben.

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("Fogadva", data.updates.length, "updates");
            }
        } catch (error) {
            console.error("A lekérdezés sikertelen:", error);
        }
    }, intervalMs);

    return timerId;
}

const timer = startPolling("/api/updates", 5000);
// clearInterval(timer) a leállításhoz

A kód létrehoz egy lekérdezési időközt 5 másodperces periódussal, és elküldi a szervernek az utolsó frissítés időbélyegét. A szerver ezt a paramétert használhatja az adatok szűrésére és csak az új rekordok visszaküldésére, csökkentve a továbbított információ mennyiségét. A függvény visszaadja az időzítő azonosítót a lekérdezés leállításának lehetőségéhez.

A Short Polling szerver oldala

A Short Polling szerver oldali megvalósítása rendkívül egyszerű — ez egy szokásos REST-végpont, amely GET kéréseket fogad és JSON választ ad vissza az aktuális állapottal vagy a megadott időbélyeg után módosított adatokkal.

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

A szerver megkapja a since paramétert, és szűri azokat a rekordokat, amelyek időbélyege meghaladja a megadott értéket. Ez a megközelítés minimalizálja az adatok mennyiségét minden válaszban, csak növekményes változásokat visszaküldve. Új adatok hiányában a szerver üres tömböt ad vissza, az ügyfél pedig folytatja a lekérdezést az ütemezés szerint.

Short Polling vs Long Polling

Short Polling és a Long Polling ugyanazt a feladatot oldja meg — adatok kiszolgálása a szerverről — de radikálisan különböznek a hatékonyságban. A Short Polling fix kérésidőközt használ, kiszámítható terhelést hozva létre, míg a Long Polling az esemény bekövetkeztéig tartja a kapcsolatot, minimalizálva az üres válaszok számát.

SzempontShort PollingLong Polling
Megvalósítás bonyolultságaAlacsony, szabványos RESTKözepes, aszinkron feldolgozás
Frissítés késleltetéseFix, N másodpercigMinimális, esemény bekövetkeztekor
Kérések számaÁllandó, N kérés percenkéntEseményenként, általában sokkal kevesebb
SzerverterhelésMagas kis időköz eseténKapcsolatok tartása, aszinkron feldolgozás
Forgalom inaktivitáskorMaximális, minden kérés fejlécekkelMinimális, egy nyitott kapcsolat
SkálázhatóságEgyszerű, állapotmentes kérésekÖsszetett, közös eseménysor szükséges

A technikák közötti választás az adatok frissítési gyakoriságától függ. Ha az események gyakrabban történnek, mint 10 másodpercenként — mindkét megközelítés összehasonlítható terhelést ad, és a Short Polling egyszerűbb lehet. Ha az események ritkák (órák vagy percek telnek el a változások között) — a Long Polling előnyösebb, mert nem hoz létre üres kéréseket. Köztes forgatókönyvek esetén a választás az infrastrukturális korlátoktól és a WebSocket használatának lehetőségétől függ.

Mikor alkalmazzák a Short Pollingot

Short Polling olyan forgatókönyvekben alkalmazzák, ahol az adatok aktualitására vonatkozó követelmények alacsonyak, és a megvalósítás egyszerűsége elsőbbséget élvez a hatékonysággal szemben. A legjellemzőbb esetek a belső adminisztratív panelek, az alacsony riasztási gyakoriságú monitorozórendszerek és azok az alkalmazások, ahol a 15–30 másodperces késleltetés elfogadható.

  • Monitorozási panelek — metrikákat tartalmazó irányítópultok, amelyek 10–30 másodpercenként frissülnek, és nem igényelnek azonnali reakciót a változásokra.
  • Állapotoldalak — szolgáltatások rendelkezésre állásának ellenőrző oldalai, ahol az adatok 30–60 másodpercenként frissülnek, és a késleltetés nem kritikus.
  • Analitikai jelentések — belső analitikai rendszerek időszakos adatgyűjtéssel, ahol az 1 perces aktualitás elfogadható.
  • Egyszerű játékok — körön alapuló többjátékos játékok valós idejű követelmények nélkül, ahol a kör néhány másodpercenként frissül.
  • Tesztelés — terheléstesztelési és hibakeresési forgatókönyvek, ahol a Short Pollingot referenciaként használják más technikákkal való összehasonlításhoz.

Fontos korlátozás — a Short Polling nem alkalmas időkritikus alkalmazásokhoz (kereskedelmi terminálok, vészhelyzeti riasztórendszerek), ahol akár 1 másodperces késleltetés is elfogadhatatlan. Ilyen forgatókönyvekben WebSocketet, Server-Sent Events vagy Long Pollingot kell használni. A Short Pollinggal való rendszer tervezésekor ki kell számítani a kéréskeretet: 1 000 ügyfél és 5 másodperces időköz esetén a szerver percenként 12 000 kérést dolgoz fel, ami megfelelő erőforrásbázist igényel.

Gyakran ismételt kérdések

Mi az a Short Polling egyszerű szavakkal?

Short Polling — amikor az alkalmazás N másodpercenként megkérdezi a szervert: „vannak új adatok?”, és a szerver minden alkalommal válaszol, még ha semmi sem változott. Ez olyan, mintha 5 percenként a postaládához menne ellenőrizni, érkezett-e új levél.

Milyen lekérdezési időközt válasszak a Short Pollinghoz?

Az optimális Short Polling időköz a forgatókönyvtől függ: 5–10 másodperc monitorozási panelekhez, 15–30 másodperc hírcsatornákhoz, 30–60 másodperc állapotoldalakhoz. Az időköznek kompromisszumnak kell lennie az adatok aktualitása és a szerverterhelés között. Kezdje 10 másodperccel, és állítsa be a tesztelési eredmények alapján.

Miben különbözik a Short Polling a Long Pollingtól?

Short Polling — az ügyfél folyamatosan „húzza” a szervert fix időközzel. Long Polling — az ügyfél egy kérést küld, és a szerver nyitva tartja azt, amíg adatok meg nem jelennek. A Short Polling egyszerűbb megvalósítani, de több üres kérést hoz létre ritka frissítések esetén.

Mikor jobb a Short Polling, mint a WebSocket?

Short Polling egyszerűbb megvalósítani, mint a WebSocketet, és nem igényel különleges protokollt — szokásos HTTP-kéréseken keresztül működik. A Short Polling egyszerű belső rendszerekben indokolt, ahol a 10–30 másodperces késleltetés elfogadható, és a WebSocket fenntartásának infrastrukturális költségei indokolatlanok.

Hogyan csökkenthetem a Short Polling szerverterhelését?

Használjon adaptív időközt: frissítések hiányában növelje a kérések közötti szünetet 2–3-szorosa. Adja hozzá a since paramétert az utolsó kérés időbélyegével, hogy a szerver csak növekményes változásokat küldjön vissza. Győrűzze a válaszokat a CDN vagy proxyszerver oldalán a backend terhelésének csökkentéséhez.

Összefoglalás

  • Short Polling — fix időközű szerver lekérdezési technika, ahol az ügyfél időzítőn keresztül küld HTTP-kéréseket, függetlenül az új adatok megjelenésétől.
  • Elv — ciklikus lekérdezés setInterval vagy rekurzív setTimeout segítségével, állandó vagy adaptív időközzel.
  • Előny — maximális egyszerűség a megvalósításban és hibakeresésben, nem igényel aszinkron feldolgozást a szerveren vagy különleges protokollokat.
  • Hátrány — túlzott forgalom ritka frissítések esetén: az üres kérések teljes HTTP-fejlécekkel haszontalan terhelést okoznak.
  • Optimális időköz — 5–15 másodperc monitorozáshoz, 15–60 másodperc alacsony változási gyakoriságú adatokhoz, 1–3 másodperc kritikus forgatókönyvekhez.
  • Összehasonlítás — egyszerűbb, mint a Long Polling, de kevésbé hatékony ritka eseményeknél; gyengébb a WebSocketnél teljesítmény és késleltetés tekintetében.
  • Ajánlás – a Short Pollingot csak egyszerű belső rendszerekhez használja alacsony adataktualitási követelményekkel vagy referenciamódszerként tesztekben.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is