Kontaktovat podporu

Odpovíme e-mailem, obvykle do dvou dnů.

Google reCAPTCHA kontroluje toto odeslání kvůli ochraně před zneužitím; data se přitom předávají společnosti Google. Skript se načte až při otevření tohoto formuláře.

← Všechny články

Seznam „kdo je online“ – slíbený v roce 2012, teď funguje

25. srpna 2012 ohlásil článek na tomto blogu, že se pole statistik začala obnovovat sama, a skončil větou: „Plánovaná funkce, seznam ‚Kdo je online‘, bude brzy k dispozici!“

Ten článek tu stále je. Na seznam, který ohlásil, se čekalo čtrnáct let. Teď existuje a počítadlo, na které ten článek odkazoval, celou dobu běželo.

Co ukazuje

Stránka statistik má živý panel: kolik lidí je právě na webu a nejnovější z nich vypsaní – země, ze které se připojili, město, pokud je známé, na které stránce jsou a jak dávno byli naposledy viděni. Dvanáct najednou, nejnovější nahoře.

„Právě“ znamená posledních pět minut. Po hodině se řádky rovnou smažou.

0560v živém seznamuřádek se uchovávásmazánominut od poslední aktivity

Co „kdo“ neznamená

Nikdo v tom seznamu není identifikován. Je sestaven ze stejného 16bajtového denního hashe, který popisuje článek o počítání bez cookies – za žádným jeho řádkem není jméno, účet, soubor cookie ani uložená IP adresa.

Navíc uchovává jen cestu stránky, nikoli celou adresu: /shop/boots, ne celý odkaz se vším, co na jeho konec připojil vyhledávač nebo newsletter.

A dva lidé ze stejného města, kteří si prohlížejí stejnou stránku, jsou prostě dva řádky. Nic v systému nedokáže rozlišit dva čtenáře od jednoho čtenáře na telefonu a notebooku. To není přehlédnutí, které čeká na úklid v další verzi. Je to záměr a je to stejný kompromis, jaký počítadlo dělá všude jinde: dost na to, aby bylo užitečné, málo na to, aby mohlo kohokoli sledovat.

Živě bez otevřeného spojení

Moderně se to staví přes WebSocket nebo server-sent events – prohlížeč drží otevřené jedno spojení a server jím posílá aktualizace, jakmile nastanou. Je to elegantní řešení a tady by bylo špatné.

Webový server tohoto webu používá jeden proces na každé otevřené spojení a jeho skutečnou prací je odpovídat na požadavky počítadel pro pár tisíc webů. Otevřené spojení je proces, který nemůže odpovědět nikomu jinému. Padesát lidí, kteří sledují svou živou stránku, by znamenalo padesát procesů, které nečinně čekají, aby doručily číslo, jež se mění jednou za pár minut.

Stránka se proto místo toho ptá, každých patnáct sekund, a stáhne malý blok JSON. Kolem toho stojí tři rozhodnutí, na kterých záleží víc než na intervalu:

  • Když požadavky začnou selhávat, zpomalí na jednou za minutu – místo aby bombardovala server, který má zjevně už tak těžké chvíle.
  • Na kartě na pozadí se přestane ptát úplně, přičemž se obnoví ve chvíli, kdy se karta vrátí do popředí. Skrytou kartu nikdo nesleduje a požadavek by stál přesně tolik co užitečný.
  • Řádek aktualizováno před N sekundami počítá nahoru místně, jednou za sekundu, a nestojí vůbec nic. Požadavek je potřeba jen ke změně dat, ne k jejich stárnutí.

Nic z toho není chytré. Je to přiměřené, což je na malém serveru ta cennější z obou vlastností. Živý pohled by neměl stát víc než to, co sleduje.

Jedna věc, která se nevrátila

V září 2015 vyšel článek o tom, jak se karta Uživatelé naučila rozlišit někoho, kdo stránku aktivně čte, od někoho, kdo ji otevřel na kartě na pozadí a zapomněl, že existuje.

Toto rozlišení se nevrátilo. Současný seznam ví, kdy byl návštěvník naposledy viděn; neví, jestli se dívá. Opravdu stojí za to to vědět – velká část „návštěvníků“ každého webu je opuštěná karta – takže je to na seznamu věcí, které se mají postavit.

Snad ne dalších čtrnáct let.

Vyzkoušejte to

Článek z roku 2012 končil odkazem na živou ukázku, což se zdá jako správný konec i pro tento. Ten původní odkaz mimochodem stále funguje: počítadlo za ním celou dobu běží a překročilo 1,3 milionu návštěv.

Tady je živá ukázka, k prohlížení není potřeba žádný účet.

Reklama