Írjon a támogatásnak

E-mailben válaszolunk, általában két napon belül.

A Google reCAPTCHA visszaélés elleni védelemként ellenőrzi ezt a beküldést; ennek során adatok jutnak el a Google-hoz. A szkript csak az űrlap megnyitásakor töltődik be.

← Összes bejegyzés

Az online látogatók listája – 2012-ben ígértük, most elérhető

2012. augusztus 25-én egy bejegyzés ezen a blogon bejelentette, hogy a statisztikai mezők maguktól frissülnek, és egy mondattal zárult: „A tervezett funkció, a »Ki van online« lista hamarosan érkezik!”

Az a bejegyzés még mindig itt van. Az általa bejelentett lista tizennégy évet váratott magára. Most már létezik, és a számláló, amelyre az a bejegyzés hivatkozott, egész idő alatt működött.

Mit mutat

A statisztikaoldalon van egy élő panel: hányan vannak éppen most a weboldalon, és közülük a legutóbbiak listája – az ország, ahonnan csatlakoztak, a város, ha ismert, az oldal, amelyen vannak, és hogy mennyi ideje látták őket utoljára. Egyszerre tizenkettő, a legújabb elöl.

Az „éppen most” az utolsó öt percet jelenti. Egy óra elteltével a sorokat véglegesen töröljük.

0560az élő listána sor még megvantörölveperc az utolsó észlelés óta

Mit nem jelent itt a „ki”

A listán senki sincs azonosítva. Ugyanabból a 16 bájtos napi hash-ből épül fel, amelyet a süti nélküli számlálásról szóló bejegyzés ír le – egyetlen sora mögött sincs név, fiók, süti vagy tárolt IP-cím.

Emellett az oldalnak csak az elérési útját tárolja, nem a teljes címet: /shop/boots, és nem a teljes linket mindazzal, amit egy keresőmotor vagy egy hírlevél a végéhez fűzött.

Két ember ugyanabból a városból, ugyanazon az oldalon egyszerűen két sor. A rendszerben semmi sem tudja megkülönböztetni a két olvasót attól az egy olvasótól, aki telefonon és laptopon is nézi az oldalt. Ez nem egy később rendbe teendő hiányosság. Ez a tervezés része, és ugyanaz a kompromisszum, amelyet a számláló mindenhol máshol is vállal: elég ahhoz, hogy hasznos legyen, de nem elég ahhoz, hogy bárkit követni lehessen.

Élő nézet nyitva tartott kapcsolat nélkül

Ennek modern megoldása a WebSocket vagy a server-sent events – a böngésző nyitva tart egy kapcsolatot, és a szerver azon keresztül küldi le a frissítéseket, amint történnek. Ez az elegáns válasz, és itt rossz választás lett volna.

Ennek a weboldalnak a webszervere nyitott kapcsolatonként egy folyamatot használ, a valódi feladata pedig az, hogy néhány ezer weboldal számlálókéréseire válaszoljon. Egy nyitva tartott kapcsolat egy olyan folyamat, amely senki másnak nem tud válaszolni. Ha ötven ember nézi az élő oldalát, az ötven tétlenül várakozó folyamatot jelent, amelyek arra várnak, hogy kiszállítsanak egy néhány percenként változó számot.

Ezért az oldal inkább maga kérdez tizenöt másodpercenként, és egy kis JSON-blokkot tölt le. Körülötte három döntés áll, amelyek többet számítanak, mint maga az időköz:

  • Ha a kérések hibára futnak, percenként egyszerire lassít – ahelyett, hogy egy láthatóan már amúgy is nehézségekkel küzdő szervert bombázna.
  • Háttérlapon egyáltalán nem kérdez, és abban a pillanatban frissül, amikor a lap újra előtérbe kerül. Egy rejtett lapot senki sem néz, a kérés pedig pontosan annyiba kerülne, mint egy hasznos kérés.
  • A kijelzett N másodperc ezelőtt frissítve sor helyben számol felfelé, másodpercenként, és semmibe sem kerül. Az adatok megváltoztatásához kell kérés, az öregedésükhöz nem.

Mindez nem különösebben okos. Arányos – és egy kis szerveren ez a kettő közül az értékesebb tulajdonság. Egy élő nézet üzemeltetése ne kerüljön többe, mint annak, amit figyel.

Egy rész, amely nem tért vissza

2015 szeptemberében megjelent egy bejegyzés arról, hogy a Felhasználók lap megtanulta megkülönböztetni azt, aki ténylegesen olvas egy oldalt, attól, aki háttérlapon nyitotta meg, és megfeledkezett róla.

Ez a megkülönböztetés nem tért vissza. A jelenlegi lista tudja, mikor látták utoljára a látogatót; azt nem tudja, hogy éppen nézi-e az oldalt. Pedig tényleg érdemes tudni – bármely weboldal „látogatóinak” jó része elhagyott lap –, ezért felkerült a megvalósítandó dolgok listájára.

Remélhetőleg nem újabb tizennégy év múlva.

Próbálja ki

A 2012-es bejegyzés egy élő példára mutató linkkel zárult, és ez most is jó befejezésnek tűnik. Mellesleg az eredeti link ma is működik: a mögötte álló számláló egész idő alatt futott, és már túl van 1,3 millió látogatáson.

Itt van egy élő példa, a megtekintéséhez nincs szükség fiókra.

Hirdetés