Gyorsítótár (cache) — miért nem látod a saját változtatásodat?
Hol tárolódik?
Több helyen egyszerre, és mindegyiket külön kell kezelni:
| Réteg | Ki üríti | Tipikus tünet |
|---|---|---|
| böngésző | a látogató (vagy fejléc-beállítás) | te látod a régit, más az újat |
| weboldal-bővítmény | te, az adminban | mindenki a régit látja |
| szerver / tárhely | a szolgáltató beállítása | a módosítás percekig nem látszik |
| tartalomkézbesítő hálózat (CDN) | külön ürítés kell | régiónként eltérő állapot |
A gyakori csapda
Ha egy fájl hosszú lejáratú gyorsítótár-fejlécet kap (például egy év), akkor a visszatérő látogató böngészője soha nem tölti újra — hiába frissítetted. Ilyenkor a megoldás a fájlnév vagy a verzió-jelölés megváltoztatása, nem a türelem.
Ellenőrzés
Nyisd meg az oldalt privát ablakban vagy másik eszközön. Ha ott az új változat látszik, akkor a te böngésződ gyorsítótára a tettes — ha ott is a régi, akkor feljebb kell keresni a rétegek között.
Miért nem érdemes kikapcsolni?
Mert a gyorsítótár nélkül minden látogató minden alkalommal újratölt mindent — ez lassabb oldalt és nagyobb szerverterhelést jelent. A helyes megoldás nem a kikapcsolás, hanem a helyes lejárati idő: a ritkán változó fájlok (képek, betűtípusok) kapjanak hosszú lejáratot, a HTML rövidet.
Verziózás — a bevált megoldás
Ha egy fájl hosszú lejáratot kap, a frissítést nem a lejárat kivárásával oldjuk meg, hanem azzal, hogy a fájl NEVE változik (vagy verzió-jelölést kap a címében). Így a böngésző új fájlt lát, és azonnal letölti — a régi pedig maradhat gyorsítótárban, senkit nem zavar.
Ez a technika a leggyakoribb oka annak, hogy egy jól felépített oldalon a frissítés azonnal látszik, egy rosszul felépítetten pedig napokig nem.
Amikor a gyorsítótár félrevezet a mérésnél
Sebességmérésnél gyakori hiba, hogy a második futtatás sokkal jobb eredményt ad — nem azért, mert javítottunk, hanem mert a fájlok már a gyorsítótárban vannak. Az igazi kérdés az ELSŐ látogatás élménye, mert az új érdeklődő mindig úgy érkezik. Méréskor tehát mindig üres gyorsítótárral induljunk.
