Popis prisutnih, obećan 2012., sada je dostupan uživo
O sadržaju i njegovoj provjeri
U ovom članku
Objava na ovom blogu 25. kolovoza 2012. najavila je da su se polja statistike počela sama osvježavati, a završila je rečenicom: „Planirana funkcija, popis ‘Tko je prisutan’, stiže uskoro!“
Ta je objava još ovdje. Popisu koji je najavila trebalo je četrnaest godina da stigne. Sada postoji, a brojač na koji je ta objava vodila radio je cijelo to vrijeme.
Što prikazuje
Stranica statistike ima ploču uživo: koliko je ljudi upravo sada na web-mjestu i popis najnovijih među njima – država iz koje su se povezali, grad ako je poznat, stranica na kojoj se nalaze i koliko je vremena prošlo otkad su posljednji put viđeni. Po dvanaest, najnoviji prvi.
„Upravo sada“ znači posljednjih pet minuta. Nakon sat vremena reci se potpuno brišu.
Što „tko“ ne znači
Na tom popisu nitko nije identificiran. Temelji se na istom dnevnom hashu od 16 bajtova opisanom u objavi o brojanju bez kolačića – ni iza jednog retka ne stoji ime, račun, kolačić ni pohranjena IP adresa.
Također čuva samo putanju stranice umjesto cijele adrese: /shop/boots, a ne cijelu poveznicu sa svime što su joj tražilica ili bilten dodali na kraj.
A dvije osobe iz istog grada koje gledaju istu stranicu jednostavno su dva retka. Ništa u sustavu ne može razlikovati dvoje čitatelja od jednog čitatelja na mobitelu i prijenosnom računalu. To nije previd koji čeka da se popravi u kasnijoj verziji. Tako je osmišljeno i riječ je o istom kompromisu koji brojač radi svugdje drugdje: dovoljno da bude korisno, nedovoljno da se ikoga prati uokolo.
Uživo bez održavanja otvorene veze
Suvremen način izrade ovoga jest WebSocket ili događaji koje šalje poslužitelj – preglednik održava jednu vezu otvorenom, a poslužitelj kroz nju šalje ažuriranja čim nastanu. To je elegantno rješenje, ali ovdje bi bilo pogrešno.
Web-poslužitelj ovog web-mjesta koristi jedan proces po otvorenoj vezi, a njegov je stvarni posao odgovarati na zahtjeve za brojače nekoliko tisuća web-mjesta. Otvorena veza znači proces koji ne može odgovarati nikome drugome. Pedeset ljudi koji gledaju svoju stranicu uživo značilo bi pedeset procesa koji miruju čekajući da isporuče broj koji se mijenja svakih nekoliko minuta.
Zato stranica umjesto toga šalje upit svakih petnaest sekundi i dohvaća mali blok JSON-a. Uz to su donesene tri odluke koje su važnije od samog intervala:
- Ako zahtjevi počnu neuspijevati, prorjeđuje ih na jedan zahtjev u minuti – umjesto da zasipa poslužitelj koji očito već ima poteškoća.
- U pozadinskoj kartici potpuno prestaje slati upite, a osvježava se čim se kartica vrati u prvi plan. Nitko ne gleda skrivenu karticu, a zahtjev bi koštao jednako kao i koristan zahtjev.
- Redak vrijeme od ažuriranja u sekundama: N lokalno povećava vrijednost jednom u sekundi i ne košta ništa. Zahtjev je potreban samo za promjenu podataka, a ne za povećavanje njihove starosti.
Ništa od ovoga nije domišljato. Razmjerno je, što je na malom poslužitelju vrednije svojstvo od domišljatosti. Prikaz uživo ne bi trebao trošiti više resursa nego ono što promatra.
Dio koji se nije vratio
U rujnu 2015. objavljena je objava o tome kako je kartica Korisnici naučila razlikovati nekoga tko aktivno čita stranicu od nekoga tko ju je otvorio u pozadinskoj kartici i zaboravio da postoji.
Ta se razlika nije vratila. Trenutačni popis zna kada je posjetitelj posljednji put viđen; ne zna gleda li stranicu. To doista vrijedi znati – dobar dio „posjetitelja“ svakog web-mjesta zapravo su napuštene kartice – pa je to na popisu stvari koje treba izraditi.
Bilo bi dobro da ne potraje još četrnaest godina.
Isprobajte
Objava iz 2012. završila je poveznicom na primjer uživo, što se čini dobrim načinom da završi i ova. Usput, ta izvorna poveznica i dalje radi: brojač iza nje radio je cijelo vrijeme i premašio 1,3 milijuna posjeta.
Ovdje je primjer uživo, za pregled nije potreban račun.