Short Polling: шта је, како ради и где се користи

Аутор: IT Sectr Објављено: 2026-06-02 Време читања: 8 мин

Short Polling — је техника интеракције клијента и сервера при којој клијент шаље HTTP захтеве у фиксним временским интервалима за добијање ажурираних података. Сервер обрађује сваки захтев одмах, враћајући тренутно стање чак и кад нема промена. Према Amazon Web Services, 2024, Short Polling је најједноставнији за имплементацију, али најмање ефикасан метод испитивања, који ствара прекомерно оптерећење сервера и мреже.

Главни закључци

  • Short Polling — техника при којој клијент шаље HTTP захтеве у фиксном интервалу независно од појаве података.
  • Принцип — клијент путем тајмера испитује сервер, сервер одмах враћа тренутно стање, чак ако се није променило.
  • Једноставност — имплементација не захтева асинхрону обраду на серверу, довољан је стандардни REST ендпоинт.
  • Недостатак — прекомеран саобраћај при непостојању ажурирања: сваки захтев укључује пуне HTTP заглавље и обраду на серверу.
  • Примена — једноставни дашбордови, мониторинг са ниском фреквенцијом испитивања и унутрашњи системи без захтева реалног времена.

Шта је Short Polling

Short Polling — је образац комуникације у којем клијент периодично шаље HTTP захтеве серверу са унапред дефинисаним интервалом, а сервер обрађује сваки захтев синхроно и одмах враћа резултат. Интервал испитивања се подешава на страни клијента помоћу тајмера и обично износи од 1 до 60 секунди, у зависности од захтева за ажурношћу података.

Short Polling је хронолошки први механизам организације реалног времена у веб апликацијама. Почетком 2000-их, пре појаве XMLHttpRequest друге генерације, веб странице су користиле <meta http-equiv="refresh"> или периодично поновно учитавање iframe-а за ажурирање садржаја. Са појавом AJAX (Asynchronous JavaScript and XML) технологије 2005. године, Short Polling је постао стандардни приступ за ажурирање података без пуног поновног учитавања странице.

Архитектура Short Polling

Архитектура Short Polling укључује три компоненте: клијентски тајмер, HTTP захтев и серверски хендлер. Клијент покреће интервални тајмер, при чијем активирању се шаље GET захтев серверу. Сервер извршава упит бази података или другом извору, формира одговор и одмах га враћа клијенту. Клијент ажурира интерфејс и чека следеће активирање тајмера. Овај циклус се понавља бесконачно док је апликација активна.

Проблем прекомерних захтева

Главни проблем Short Polling — неизбежни празни захтеви. Ако се подаци ретко мењају, већина захтева враћа резултат „без промена“, трошећи пропусну моћ мреже и време процесора на обраду. Са 10 000 клијената и интервалом испитивања од 5 секунди, сервер прима 2 000 захтева у секунди — значајан део је бескористан ако је фреквенција ажурирања 1 догађај у минути.

Како ради Short Polling

Short Polling ради по једноставном циклусу: клијент поставља интервални тајмер са одређеним периодом (нпр. 5000 мс). При сваком активирању тајмера, клијент креира HTTP GET захтев ка серверском ендпоинту, обично са параметром временског жига последње ажурности. Сервер прима захтев, проверава постојање нових података након наведеног жига и враћа одговор — било са новим подацима или са индикатором непостојања ажурирања.

Критични параметар подешавања Short Polling — интервал испитивања. Превише кратак интервал (мање од 3 секунде) ствара високо оптерећење сервера и мреже. Превише дуг (преко 30 секунди) смањује ажурност података. Оптимални интервал зависи од сценарија: за мониторинг панеле — 5–15 секунди, за новости — 30–60 секунди, за критичне аларме — 1–3 секунде. Избор интервала је увек компромис између ажурности података и оптерећења инфраструктуре.

Адаптивни интервал испитивања

За смањење оптерећења при мировању користи се адаптивни интервал: ако више узастопних захтева врати празан резултат, интервал се повећава (нпр. са 5 на 15 секунди). По појави нових података, интервал се ресетује на минималну вредност. Алгоритам експоненцијалног кашњења (exponential backoff) омогућава смањење броја празних захтева 3–5 пута при ретким ажурирањима.

Пример имплементације Short Polling у JavaScript

Размотримо клијентску имплементацију Short Polling коришћењем setInterval и Fetch API. Функција прихвата URL ендпоинта и интервал испитивања у милисекундама.

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("Примљено", data.updates.length, "updates");
            }
        } catch (error) {
            console.error("Испитивање није успело:", error);
        }
    }, intervalMs);

    return timerId;
}

const timer = startPolling("/api/updates", 5000);
// clearInterval(timer) за заустављање

Код креира интервал испитивања са периодом од 5 секунди и преноси серверу временски жиг последње ажурности. Сервер може користити овај параметар за филтрирање података и враћање само нових записа, смањујући количину пренете информације. Функција враћа идентификатор тајмера за могућност заустављања испитивања.

Серверски део Short Polling

Серверска имплементација за Short Polling је изузетно једноставна — то је обичан REST endpoint који прима GET захтеве и враћа JSON одговор са тренутним стањем или подацима промењеним након наведеног жига.

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

Сервер добија параметар since и филтрира записе чији временски жиг премашује наведени. Овакав приступ минимизира количину података у сваком одговору, враћајући само инкременталне промене. При непостојању нових података, сервер враћа празан низ, а клијент наставља испитивање по распореду.

Short Polling vs Long Polling

Short Polling и Long Polling решавају исти задатак — испоруку података са сервера — али се радикално разликују по ефикасности. Short Polling користи фиксни интервал захтева, стварајући предвидљиво оптерећење, док Long Polling држи везу до појаве догађаја, минимизирајући број празних одговора.

КритеријумShort PollingLong Polling
Сложеност имплементацијеНиска, стандардни RESTСредња, асинхрона обрада
Кашњење ажурирањаФиксно, до N секундиМинимално, при појави догађаја
Број захтеваСтално, N захтева у минутиПо догађајима, обично знатно мање
Оптерећење сервераВисоко при малом интервалуДржање веза, асинхрона обрада
Саобраћај при мировањуМаксималан, сваки захтев са заглављимаМинималан, једна отворена веза
СкалирањеЈедноставно, безстањски захтевиСложено, потребан заједнички ред догађаја

Избор између техника зависи од учесталости ажурирања података. Ако се догађаји дешавају чешће од једном у 10 секунди — оба приступа пружају упоредиво оптерећење, и Short Polling може бити једноставнији. Ако су догађаји ретки (сати или минути између промена) — Long Polling је пожељнији, јер не ствара празне захтеве. За прелазне сценарије, избор зависи од инфраструктурних ограничења и могућности кориштења WebSocket.

Када се примењује Short Polling

Short Polling се примењује у сценаријима где су захтеви за ажурношћу података ниски, а једноставност имплементације има приоритет над ефикасношћу. Најтипичнији случајеви су унутрашње административне панеле, системи за мониторинг са ниском учесталошћу аларми и апликације које подносе кашњење од 15–30 секунди.

  • Мониторинг панеле — дашбордови са метрикама који се ажурирају сваких 10–30 секунди, који не захтевају тренутну реакцију на промене.
  • Странице статуса — странице за проверу доступности услуга, где се подаци ажурирају на 30–60 секунди, а кашњење није критично.
  • Аналитички извештаји — унутрашњи аналитички системи са периодичним прикупљањем података, где је ажурност до 1 минуте прихватљива.
  • Једноставне игре — вишекорисничке игре на потезе без захтева реалног времена, где се потез ажурира сваких неколико секунди.
  • Тестирање — сценарији тестирања оптерећења и отклањања, где се Short Polling користи као референтни метод испитивања за поређење са другим техникама.

Важно ограничење — Short Polling није погодан за временски критичне апликације (трговачки терминали, системи за хитно упозорење), где је кашњење чак и од 1 секунде неприхватљиво. У таквим сценаријима потребно је користити WebSocket, Server-Sent Events или Long Polling. При пројектовању система са Short Polling, потребно је израчунати буџет захтева: са 1 000 клијената и интервалом од 5 секунди, сервер обрађује 12 000 захтева у минути, што захтева одговарајућу ресурсну базу.

Често постављана питања

Шта је Short Polling једноставним језиком?

Short Polling — то је кад апликација сваких N секунди пита сервер: „има нових података?“, и сервер сваки пут одговара, чак ако се ништа није променило. То је као кад прилазите поштанском сандучету сваких 5 минута да проверите да ли је стигла новa пошта.

Који интервал испитивања одабрати за Short Polling?

Оптимални Short Polling интервал зависи од сценарија: 5–10 секунди за панеле за мониторинг, 15–30 секунди за новости, 30–60 секунди за странице статуса. Интервал треба да буде компромис између ажурности података и оптерећења сервера. Почните са 10 секунди и прилагођавајте на основу резултата тестирања.

По чему се Short Polling разликује од Long Polling?

Short Polling — клијент константно „тега“ сервер са фиксним интервалом. Long Polling — клијент шаље један захтев, а сервер га држи отвореним до појаве података. Short Polling је једноставнији за имплементацију, али ствара више празних захтева при ретким ажурирањима.

Када је Short Polling бољи од WebSocket?

Short Polling је једноставнији за имплементацију од WebSocket-а и не захтева посебан протокол — ради путем обичних HTTP захтева. Short Polling је оправдан за једноставне унутрашње системе где је кашњење од 10–30 секунди прихватљиво, а инфраструктурни трошкови за одржавање WebSocket-а нису оправдани.

Како смањити оптерећење сервера од Short Polling?

Користите адаптивни интервал: при непостојању ажурирања, повећајте паузу између захтева 2–3 пута. Додајте параметар since са временским жигом последњег захтева, да би сервер враћао само инкременталне промене. Кеширајте одговоре на страни CDN-а или прокси сервера за смањење оптерећења бекенда.

Закључак

  • Short Polling — техника испитивања сервера са фиксним интервалом, при којој клијент шаље HTTP захтеве путем тајмера независно од појаве нових података.
  • Принцип — циклично испитивање путем setInterval или рекурзивног setTimeout са сталним или адаптивним интервалом.
  • Предност — максимална једноставност имплементације и отклањања, не захтева асинхрону обраду на серверу ни посебне протоколе.
  • Недостатак — прекомеран саобраћај при ретким ажурирањима: празни захтеви са пуним HTTP заглављима стварају бескорисно оптерећење.
  • Оптимални интервал — 5–15 секунди за мониторинг, 15–60 секунди за податке са ниском учесталошћу промена, 1–3 секунде за критичне сценарије.
  • Поређење — једноставнији од Long Polling, али мање ефикасан при ретким догађајима; инфериоран у односу на WebSocket по перформансама и кашњењу.
  • Препорука — користите Short Polling само за једноставне унутрашње системе са ниским захтевима за ажурношћу података или као референтну методу у тестовима.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође