Proč se obrázek z mezipaměti nepočítá
V tomto článku
Častým zdrojem nejasností kolem statistik webu je místní ukládání souborů, obvykle označované jako mezipaměť prohlížeče (cache). Webové prohlížeče jsou navrženy tak, aby pracovaly co nejúsporněji a nejrychleji.
Při první návštěvě stránky si prohlížeč stáhne veškerý potřebný text, rozvržení a grafiku. Aby při dalších návštěvách neplýtval časem a síťovými prostředky, uloží si kopie těchto statických souborů na místní disk.
Pokud se tatáž stránka krátce nato otevře znovu, prohlížeč načte grafiku přímo z tohoto místního úložiště, místo aby vzdálený server žádal o novou kopii. Tento postup výrazně zkracuje dobu načítání, přímo však ovlivňuje, jak fungují externí měřicí nástroje.
Návštěva, kterou server nikdy nevidí
Počítání pomocí obrázku stojí zcela na tom, že server obdrží požadavek. Pokud prohlížeč usoudí, že místně uložená kopie grafiky je stále zcela platná, žádnou zprávu přes internet vůbec neodešle.
Z pohledu serveru se druhá návštěva prostě nikdy neuskutečnila. Čísla v databázi se proto neaktualizují a grafika na obrazovce dál ukazuje předchozí hodnotu.
Takové chování často vede k mylnému dojmu, že je nástroj rozbitý, zvlášť při testování, kdy se stránka několikrát rychle po sobě obnoví. To, že se číslo nezměnilo, není selhání systému, ale znamení, že prohlížeč šetří data přesně tak, jak má.
Pokyn, který putuje se souborem
Aby toto chování mohly řídit, mohou servery k doručovaným souborům připojit konkrétní pokyny. Tyto pokyny, zvané hlavičky mezipaměti (cache headers), přijímajícímu prohlížeči přesně sdělují, jak dlouho má soubor uchovávat a kdy si musí vyžádat čerstvou kopii. Fotografie v galerii může nést pokyn, že smí zůstat uložena celý rok.
Dynamická grafika, která zobrazuje neustále se měnící číslo, však vyžaduje úplně jiná pravidla. Server, který grafiku vytváří, musí prohlížeči výslovně nařídit, aby obrázek nikdy neukládal, nebo aby si alespoň při každém zobrazení stránky ověřil u serveru, zda je aktuální.
Přesnost proti zátěži
Přísná pravidla zajišťují mnohem vyšší přesnost, protože nutí prohlížeč ohlásit se při každém otevření stránky. Úplné vypnutí mezipaměti pro měřicí grafiku však zároveň znamená, že server musí zpracovat výrazně více požadavků.
Při každém obnovení musí vynaložit výpočetní výkon na nové vykreslení obrázku, i když se číslo změnilo jen o jedničku.
Najít správnou rovnováhu mezi přesným zaznamenáváním a rozumným hospodařením s prostředky je jedním ze základních úkolů při provozu takové služby. Mírné zpoždění při aktualizaci viditelného čísla se někdy vyplatí, pokud díky němu celá infrastruktura zůstane rychlá a pohotová a hlavní obsah stránky se nikdy nezdrží.
Proč obnovování nic nedokazuje
Když rozumíte roli místního úložiště, je jasné, proč je opakované ruční obnovování stránky špatným způsobem, jak ověřit přesnost měřicího nástroje.
Pokud se čísla ani po pětinásobném stisknutí tlačítka pro obnovení nepohnou, nejpravděpodobnějším vysvětlením je, že prohlížeč jen znovu používá grafiku, kterou stáhl napoprvé. Otevření úplně jiného prohlížeče nebo použití jiného zařízení v jiné síti místní úložiště zcela obejde a vynutí nový požadavek.
Takový postup mnohem jasněji ukáže, zda server správně registruje nové příchozí a vytváří pro stránku aktualizovanou grafiku.