Zoznam ľudí online, sľúbený v roku 2012 a teraz spustený
V tomto článku
Príspevok na tomto blogu z 25. augusta 2012 oznámil, že polia štatistík sa začali obnovovať samy, a skončil vetou: „Plánovaná funkcia, zoznam ‚Kto je online‘, príde už čoskoro!“
Ten príspevok je stále tu. Zoznamu, ktorý oznamoval, trvalo štrnásť rokov, kým prišiel. Teraz existuje a počítadlo, na ktoré príspevok odkazoval, bežalo celý čas.
Čo zobrazuje
Stránka so štatistikami má živý panel: koľko ľudí je práve na webe a zoznam tých najnovších – krajinu, z ktorej sa pripojili, mesto, ak je známe, na ktorej stránke sú a ako dávno ich bolo naposledy vidno. Po dvanástich, od najnovších.
„Práve teraz“ znamená posledných päť minút. Po hodine sa riadky úplne odstránia.
Čo neznamená „kto“
Nikto v tomto zozname nie je identifikovaný. Vzniká z toho istého 16-bajtového denného hashu opísaného v príspevku o počítaní bez súboru cookie – za žiadnym riadkom nie je meno, účet, súbor cookie ani uložená IP adresa.
Uchováva sa aj iba cesta stránky namiesto celej adresy: /shop/boots, nie celý odkaz so všetkým, čo na jeho koniec pridal vyhľadávač alebo informačný bulletin.
A dvaja ľudia z toho istého mesta, ktorí si prezerajú tú istú stránku, sú jednoducho dva riadky. Nič v systéme nedokáže rozlíšiť dvoch čitateľov od jedného čitateľa na telefóne a notebooku. Nie je to prehliadnutie čakajúce na opravu v neskoršej verzii. Je to zámer a ten istý kompromis, ktorý počítadlo robí všade inde: dosť na užitočnosť, málo na sledovanie kohokoľvek.
Naživo bez udržiavania otvoreného spojenia
Moderným spôsobom vytvorenia je WebSocket alebo udalosti odosielané serverom – prehliadač udržiava jedno otvorené spojenie a server ním priebežne posiela aktualizácie. Je to elegantná odpoveď a tu by bola nesprávna.
Webový server tohto webu používa jeden proces na každé otvorené spojenie a jeho skutočnou úlohou je odpovedať na požiadavky na počítadlá niekoľkých tisíc webov. Otvorené spojenie znamená proces, ktorý nemôže odpovedať nikomu inému. Päťdesiat ľudí sledujúcich svoju živú stránku by znamenalo päťdesiat nečinných procesov čakajúcich na doručenie čísla, ktoré sa mení každých pár minút.
Stránka sa preto namiesto toho pýta každých pätnásť sekúnd a načíta malý blok JSON. S tým súvisia tri rozhodnutia, na ktorých záleží viac než na intervale:
- Ak požiadavky začnú zlyhávať, zníži frekvenciu na jednu za minútu – namiesto bombardovania servera, ktorý má zjavne už aj tak ťažkosti.
- Na karte na pozadí sa prestane pýtať úplne, pričom sa obnoví okamžite, keď sa karta vráti do popredia. Nikto nesleduje skrytú kartu a požiadavka by stála presne toľko ako užitočná.
- Riadok od aktualizácie uplynulo: N s zvyšuje čas lokálne raz za sekundu a nestojí vôbec nič. Požiadavku si vyžaduje iba zmena údajov, nie ich starnutie.
Nič z toho nie je dômyselné. Je to primerané, čo je na malom serveri cennejšia z týchto dvoch vlastností. Prevádzka živého prehľadu by nemala stáť viac než to, čo sleduje.
Časť, ktorá sa nevrátila
V septembri 2015 vyšiel príspevok o tom, že karta Používatelia sa naučila rozlišovať človeka, ktorý aktívne číta stránku, od človeka, ktorý ju otvoril na karte na pozadí a zabudol, že existuje.
Toto rozlišovanie sa nevrátilo. Súčasný zoznam vie, kedy bol návštevník naposledy videný; nevie, či sa pozerá. Naozaj sa to oplatí vedieť – značnú časť „návštevníkov“ každého webu tvoria opustené karty –, preto je to na zozname vecí, ktoré treba vytvoriť.
Dúfajme, že nie o ďalších štrnásť rokov.
Vyskúšajte to
Príspevok z roku 2012 sa končil odkazom na živý príklad, čo sa zdá byť správnym zakončením aj tohto. Mimochodom, pôvodný odkaz stále funguje: počítadlo za ním bežalo celý čas a prekročilo 1,3 milióna návštev.
Tu je živý príklad, na prezretie netreba účet.