Short Polling — is een techniek voor client-serverinteractie waarbij de client met vaste tijdsintervallen HTTP-verzoeken verzendt om bijgewerkte gegevens te verkrijgen. De server verwerkt elk verzoek onmiddellijk en retourneert de huidige status, zelfs als er geen wijzigingen zijn. Volgens Amazon Web Services, 2024 is Short Polling de eenvoudigste te implementeren, maar minst efficiënte pollingmethode, die overmatige belasting van de server en het netwerk veroorzaakt.
Belangrijkste punten
Short Polling — is een communicatiepatroon waarbij de client periodiek HTTP-verzoeken naar de server stuurt met een vooraf ingesteld interval, en de server elk verzoek synchroon verwerkt en onmiddellijk het resultaat retourneert. Het pollinginterval wordt aan de clientzijde ingesteld met behulp van timers en varieert meestal van 1 tot 60 seconden, afhankelijk van de vereisten voor de actualiteit van gegevens.
Short Polling is chronologisch het eerste mechanisme voor het organiseren van real-time communicatie in webapplicaties. In het begin van de jaren 2000, vóór de komst van XMLHttpRequest van de tweede generatie, gebruikten webpagina’s <meta http-equiv=”refresh”> of het periodiek herladen van iframes om inhoud bij te werken. Met de komst van AJAX (Asynchronous JavaScript and XML) technologie in 2005 werd Short Polling de standaardaanpak voor het bijwerken van gegevens zonder de pagina volledig te herladen.
De Short Polling-architectuur omvat drie componenten: een clienttimer, een HTTP-verzoek en een serverhandler. De client start een intervaltimer, waarna een GET-verzoek naar de server wordt gestuurd. De server voert een query uit op de database of een andere bron, vormt een antwoord en retourneert dit onmiddellijk aan de client. De client werkt de interface bij en wacht op de volgende timer-activatie. Deze cyclus herhaalt zich oneindig zolang de applicatie actief is.
Het grootste probleem van Short Polling — onvermijdelijke lege verzoeken. Als gegevens zelden veranderen, retourneren de meeste verzoeken het resultaat „geen wijzigingen”, wat netwerkbandbreedte en processortijd verspilt aan verwerking. Met 10.000 clients en een pollinginterval van 5 seconden ontvangt de server 2.000 verzoeken per seconde — waarvan een aanzienlijk deel nutteloos is als de updatefrequentie 1 gebeurtenis per minuut is.
Short Polling werkt volgens een eenvoudige cyclus: de client stelt een intervaltimer in met een bepaalde periode (bijv. 5000 ms). Bij elke timer-activatie maakt de client een HTTP GET-verzoek naar het serverendpoint, meestal met een parameter voor de timestamp van de laatste update. De server ontvangt het verzoek, controleert op nieuwe gegevens na de opgegeven timestamp en retourneert een antwoord — ofwel met nieuwe gegevens, ofwel met een indicatie dat er geen updates zijn.
De kritieke configuratieparameter van Short Polling — het pollinginterval. Een te kort interval (minder dan 3 seconden) veroorzaakt hoge belasting van de server en het netwerk. Een te lang interval (meer dan 30 seconden) vermindert de actualiteit van gegevens. Het optimale interval hangt af van het scenario: voor monitoringspanelen — 5–15 seconden, voor nieuwsfeeds — 30–60 seconden, voor kritieke alerts — 1–3 seconden. De keuze van het interval is altijd een compromis tussen actualiteit van gegevens en infrastructuurbelasting.
Om de belasting bij inactiviteit te verminderen, wordt een adaptief interval gebruikt: als meerdere opeenvolgende verzoeken een leeg resultaat opleveren, wordt het interval verlengd (bijv. van 5 naar 15 seconden). Wanneer er nieuwe gegevens verschijnen, wordt het interval teruggezet naar de minimumwaarde. Het exponentiële vertragingsalgoritme (exponential backoff) kan het aantal lege verzoeken bij zeldzame updates met 3–5 keer verminderen.
Laten we de clientimplementatie van Short Polling bekijken met behulp van setInterval en Fetch API. De functie accepteert de URL van het endpoint en het pollinginterval in milliseconden.
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("Ontvangen", data.updates.length, "updates");
}
} catch (error) {
console.error("Polling mislukt:", error);
}
}, intervalMs);
return timerId;
}
const timer = startPolling("/api/updates", 5000);
// clearInterval(timer) om te stoppen
De code creëert een pollinginterval met een periode van 5 seconden en stuurt de timestamp van de laatste update naar de server. De server kan deze parameter gebruiken om gegevens te filteren en alleen nieuwe records terug te sturen, waardoor de hoeveelheid verzonden informatie wordt verminderd. De functie retourneert de timer-ID om de polling te kunnen stoppen.
De serverimplementatie voor Short Polling is uiterst eenvoudig — het is een gewoon REST-endpoint dat GET-verzoeken accepteert en een JSON-antwoord retourneert met de huidige status of gegevens die zijn gewijzigd na de opgegeven timestamp.
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);
De server ontvangt de parameter since en filtert records waarvan de timestamp de opgegeven waarde overschrijdt. Deze aanpak minimaliseert de hoeveelheid gegevens in elk antwoord door alleen incrementele wijzigingen terug te sturen. Bij afwezigheid van nieuwe gegevens retourneert de server een lege array en gaat de client verder met pollen volgens schema.
Short Polling en Long Polling lossen dezelfde taak op — het leveren van gegevens van de server — maar verschillen radicaal in efficiëntie. Short Polling gebruikt een vast verzoekinterval, wat voorspelbare belasting creëert, terwijl Long Polling de verbinding vasthoudt tot er een gebeurtenis plaatsvindt, waardoor het aantal lege antwoorden wordt geminimaliseerd.
| Criterium | Short Polling | Long Polling |
|---|---|---|
| Implementatiecomplexiteit | Laag, standaard REST | Gemiddeld, asynchrone verwerking |
| Updatevertraging | Vast, tot N seconden | Minimaal, bij gebeurtenis |
| Aantal verzoeken | Constant, N verzoeken per minuut | Op gebeurtenissen, meestal veel minder |
| Serverbelasting | Hoog bij klein interval | Verbindingen vasthouden, asynchrone verwerking |
| Verkeer bij inactiviteit | Maximaal, elk verzoek met headers | Minimaal, één open verbinding |
| Schaalbaarheid | Eenvoudig, stateless verzoeken | Complex, gedeelde gebeurtenissenwachtrij vereist |
De keuze tussen technieken hangt af van de updatefrequentie van gegevens. Als gebeurtenissen vaker dan eens per 10 seconden plaatsvinden — beide benaderingen geven vergelijkbare belasting, en Short Polling kan eenvoudiger zijn. Als gebeurtenissen zeldzaam zijn (uren of minuten tussen wijzigingen) — heeft Long Polling de voorkeur omdat het geen lege verzoeken creëert. Voor tussenliggende scenario’s hangt de keuze af van infrastructurele beperkingen en de mogelijkheid om WebSocket te gebruiken.
Short Polling wordt toegepast in scenario’s waar de vereisten voor gegevensactualiteit laag zijn en implementatie-eenvoud prioriteit heeft boven efficiëntie. De meest typische gevallen zijn interne administratieve panelen, monitoringssystemen met lage alertfrequentie en applicaties waarin een vertraging van 15–30 seconden acceptabel is.
Belangrijke beperking — Short Polling is niet geschikt voor tijdkritische applicaties (handelsterminals, noodwaarschuwingssystemen), waar een vertraging van zelfs 1 seconde onaanvaardbaar is. In dergelijke scenario’s moeten WebSocket, Server-Sent Events of Long Polling worden gebruikt. Bij het ontwerpen van een systeem met Short Polling moet het verzoekbudget worden berekend: met 1.000 clients en een interval van 5 seconden verwerkt de server 12.000 verzoeken per minuut, wat een passende resourcebasis vereist.
Veelgestelde vragen
Short Polling — is wanneer de applicatie elke N seconden aan de server vraagt: „zijn er nieuwe gegevens?”, en de server elke keer antwoordt, zelfs als er niets is veranderd. Het is alsof u elke 5 minuten naar uw brievenbus loopt om te controleren of er nieuwe post is.
Het optimale Short Polling-interval hangt af van het scenario: 5–10 seconden voor monitoringspanelen, 15–30 seconden voor nieuwsfeeds, 30–60 seconden voor statuspagina’s. Het interval moet een compromis zijn tussen gegevensactualiteit en serverbelasting. Begin met 10 seconden en pas aan op basis van testresultaten.
Short Polling — de client ‘trekt’ constant aan de server met een vast interval. Long Polling — de client doet één verzoek en de server houdt dit open tot er gegevens beschikbaar komen. Short Polling is eenvoudiger te implementeren, maar creëert meer lege verzoeken bij zeldzame updates.
Short Polling is eenvoudiger te implementeren dan WebSocket en vereist geen speciaal protocol — het werkt via gewone HTTP-verzoeken. Short Polling is gerechtvaardigd voor eenvoudige interne systemen waar een vertraging van 10–30 seconden acceptabel is en de infrastructurele kosten van het onderhouden van WebSocket niet gerechtvaardigd zijn.
Gebruik een adaptief interval: verhoog bij afwezigheid van updates de pauze tussen verzoeken met 2–3 keer. Voeg de parameter since toe met de timestamp van het laatste verzoek, zodat de server alleen incrementele wijzigingen retourneert. Cache antwoorden aan de CDN- of proxyserverzijde om de backendbelasting te verminderen.
Samenvatting
setInterval of recursieve setTimeout met constant of adaptief interval.We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook