Short Polling — ay isang pamamaraan ng interaksyon ng client-server kung saan ang client ay nagpapadala ng mga HTTP request sa mga nakapirming agwat ng oras upang makakuha ng na-update na data. Pinoproseso kaagad ng server ang bawat request, ibinabalik ang kasalukuyang estado kahit na walang mga pagbabago. Ayon sa Amazon Web Services, 2024, ang Short Polling ay ang pinakasimpleng ipatupad, ngunit hindi gaanong epektibong paraan ng polling, na lumilikha ng labis na karga sa server at network.
Mga Pangunahing Punto
Short Polling — ay isang pattern ng komunikasyon kung saan ang client ay pana-panahong nagpapadala ng mga HTTP request sa server na may paunang natukoy na agwat, at pinoproseso ng server ang bawat request synchronously at agad na ibinabalik ang resulta. Ang polling interval ay itinakda sa client side gamit ang mga timer at karaniwang mula 1 hanggang 60 segundo, depende sa mga kinakailangan sa pagiging bago ng data.
Ang Short Polling ay kronolohikal na unang mekanismo ng pag-oorganisa ng real-time sa mga web application. Noong unang bahagi ng 2000s, bago ang paglitaw ng XMLHttpRequest ng ikalawang henerasyon, ang mga web page ay gumamit ng <meta http-equiv=”refresh”> o pana-panahong pag-reload ng iframe para i-update ang nilalaman. Sa paglitaw ng AJAX (Asynchronous JavaScript and XML) na teknolohiya noong 2005, ang Short Polling ay naging standard approach para sa pag-update ng data nang walang buong pag-reload ng page.
Ang arkitektura ng Short Polling ay may tatlong bahagi: client timer, HTTP request, at server handler. Sinimulan ng client ang isang interval timer, na sa pag-activate nito ay nagpapadala ng GET request sa server. Ang server ay nagsasagawa ng query sa database o iba pang source, bumubuo ng tugon, at agad itong ibinabalik sa client. Ina-update ng client ang interface at naghihintay ng susunod na pag-activate ng timer. Ang cycle na ito ay nauulit nang walang hanggan habang aktibo ang application.
Ang pangunahing problema ng Short Polling — hindi maiiwasang mga walang laman na request. Kung ang data ay madalang magbago, karamihan sa mga request ay nagbabalik ng resulta na “walang pagbabago”, na nag-aaksaya ng bandwidth ng network at oras ng processor sa pagproseso. Sa 10,000 client na may polling interval na 5 segundo, ang server ay tumatanggap ng 2,000 request bawat segundo — isang malaking bahagi nito ay walang silbi kung ang frequency ng update ay 1 event bawat minuto.
Short Polling ay gumagana sa isang simpleng cycle: ang client ay nagtatakda ng interval timer na may tinukoy na panahon (hal., 5000 ms). Sa bawat pag-activate ng timer, ang client ay gumagawa ng HTTP GET request sa server endpoint, karaniwang may parameter ng timestamp ng huling update. Ang server ay tumatanggap ng request, sinusuri ang pagkakaroon ng bagong data pagkatapos ng tinukoy na timestamp, at nagbabalik ng tugon — alinman sa may bagong data o may indikasyon na walang update.
Ang kritikal na parameter ng configuration ng Short Polling — ang polling interval. Ang masyadong maikling interval (mas mababa sa 3 segundo) ay lumilikha ng mataas na karga sa server at network. Ang masyadong mahabang interval (higit sa 30 segundo) ay nagbabawas sa pagiging bago ng data. Ang optimal na interval ay depende sa scenario: para sa monitoring panel — 5–15 segundo, para sa news feed — 30–60 segundo, para sa kritikal na alert — 1–3 segundo. Ang pagpili ng interval ay palaging kompromiso sa pagitan ng pagiging bago ng data at karga sa infrastructure.
Para mabawasan ang karga sa panahon ng idle, ginagamit ang adaptive interval: kung ilang magkakasunod na request ay nagbalik ng walang laman na resulta, ang interval ay tataas (hal., mula 5 hanggang 15 segundo). Kapag lumitaw ang bagong data, ang interval ay irereset sa minimum na halaga. Ang algorithm ng exponential backoff ay nagbibigay-daan upang bawasan ang bilang ng walang laman na request ng 3–5 beses sa mga madalang na update.
Tingnan natin ang client implementation ng Short Polling gamit ang setInterval at Fetch API. Ang function ay tumatanggap ng URL ng endpoint at polling interval sa millisecond.
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("Natanggap", data.updates.length, "updates");
}
} catch (error) {
console.error("Nabigo ang polling:", error);
}
}, intervalMs);
return timerId;
}
const timer = startPolling("/api/updates", 5000);
// clearInterval(timer) para ihinto
Ang code ay lumilikha ng polling interval na may panahon na 5 segundo at nagpapadala ng timestamp ng huling update sa server. Maaaring gamitin ng server ang parameter na ito para i-filter ang data at ibalik lamang ang mga bagong record, na binabawasan ang dami ng ipinadalang impormasyon. Ang function ay nagbabalik ng timer identifier para sa posibilidad na ihinto ang polling.
Ang server implementation para sa Short Polling ay sobrang simple — ito ay isang ordinaryong REST endpoint na tumatanggap ng GET request at nagbabalik ng JSON response na may kasalukuyang estado o data na binago pagkatapos ng tinukoy na 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);
Ang server ay tumatanggap ng parameter na since at nagfi-filter ng mga record na ang timestamp ay lumampas sa tinukoy na halaga. Ang approach na ito ay nagmiminimize ng dami ng data sa bawat tugon, na nagbabalik lamang ng incremental na mga pagbabago. Kung walang bagong data, ang server ay nagbabalik ng empty array, at ang client ay nagpapatuloy ng polling ayon sa iskedyul.
Short Polling at Long Polling ay lumulutas ng parehong gawain — paghahatid ng data mula sa server — ngunit malaki ang pagkakaiba sa kahusayan. Ang Short Polling ay gumagamit ng fixed request interval, na lumilikha ng predictable na karga, habang ang Long Polling ay nagpapanatili ng koneksyon hanggang sa mangyari ang event, na nagmiminimize ng bilang ng mga walang laman na tugon.
| Krayterya | Short Polling | Long Polling |
|---|---|---|
| Kompleksidad ng Implementasyon | Mababa, standard na REST | Katamtaman, asynchronous processing |
| Pagkaantala ng Update | Fixed, hanggang N segundo | Minimal, sa paglitaw ng event |
| Bilang ng Request | Constant, N request bawat minuto | Ayon sa event, karaniwang mas kaunti |
| Karga sa Server | Mataas sa maliit na interval | Pagpapanatili ng koneksyon, asynchronous processing |
| Trapiko sa Idle | Maksimum, bawat request na may headers | Minimal, isang bukas na koneksyon |
| Pag-scale | Simple, stateless request | Komplikado, nangangailangan ng shared event queue |
Ang pagpili sa pagitan ng mga teknik ay depende sa frequency ng pag-update ng data. Kung ang mga event ay nangyayari nang mas madalas kaysa isang beses bawat 10 segundo — ang parehong approach ay nagbibigay ng maihahambing na karga, at ang Short Polling ay maaaring mas simple. Kung ang mga event ay madalang (oras o minuto sa pagitan ng mga pagbabago) — ang Long Polling ay mas kanais-nais dahil hindi ito lumilikha ng mga walang laman na request. Para sa mga intermediate scenario, ang pagpili ay depende sa infrastructure constraints at posibilidad ng paggamit ng WebSocket.
Short Polling ay ginagamit sa mga scenario kung saan ang mga kinakailangan sa pagiging bago ng data ay mababa at ang pagiging simple ng implementasyon ay may priyoridad kaysa sa kahusayan. Ang pinaka-karaniwang kaso ay internal administrative panel, monitoring system na may mababang alert frequency, at mga application kung saan ang pagkaantala ng 15–30 segundo ay katanggap-tanggap.
Mahalagang Limitasyon — ang Short Polling ay hindi angkop para sa time-critical na application (trading terminal, emergency alert system), kung saan ang pagkaantala kahit 1 segundo ay hindi katanggap-tanggap. Sa ganitong mga scenario, dapat gamitin ang WebSocket, Server-Sent Events, o Long Polling. Sa pag-design ng system na may Short Polling, dapat kalkulahin ang request budget: sa 1,000 client na may interval na 5 segundo, ang server ay nagpoproseso ng 12,000 request bawat minuto, na nangangailangan ng naaangkop na resource base.
Mga Madalas Itanong
Short Polling — ay kapag ang application tuwing N segundo ay nagtatanong sa server: "may bagong data?", at ang server ay sumasagot sa bawat pagkakataon, kahit na walang nagbago. Ito ay tulad ng pagpunta sa mailbox tuwing 5 minuto upang suriin kung may bagong sulat.
Ang optimal na Short Polling interval ay depende sa scenario: 5–10 segundo para sa monitoring panel, 15–30 segundo para sa news feed, 30–60 segundo para sa status page. Ang interval ay dapat na kompromiso sa pagitan ng pagiging bago ng data at karga ng server. Magsimula sa 10 segundo at ayusin batay sa mga resulta ng pagsubok.
Short Polling — ang client ay patuloy na “humihila” sa server na may fixed interval. Long Polling — ang client ay gumagawa ng isang request, at ang server ay pinapanatili itong bukas hanggang sa lumitaw ang data. Ang Short Polling ay mas simple na ipatupad, ngunit lumilikha ng mas maraming walang laman na request sa madalang na update.
Short Polling ay mas simpleng ipatupad kaysa WebSocket at hindi nangangailangan ng espesyal na protocol — gumagana ito sa pamamagitan ng ordinaryong HTTP request. Ang Short Polling ay makatwiran para sa simpleng internal system kung saan ang pagkaantala ng 10–30 segundo ay katanggap-tanggap at ang infrastructure cost ng pagpapanatili ng WebSocket ay hindi makatwiran.
Gumamit ng adaptive interval: kung walang update, taasan ang pagitan ng request ng 2–3 beses. Magdagdag ng parameter na since na may timestamp ng huling request, upang ang server ay magbalik lamang ng incremental na pagbabago. I-cache ang mga tugon sa side ng CDN o proxy server upang mabawasan ang karga ng backend.
Buod
setInterval o recursive na setTimeout na may constant o adaptive interval.Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din