Back/Forward Cache
A teszt azt nézi, hogy a Cache-Control: no-store fejléc vagy egy unload eseménykezelő kizárja-e az oldalt a böngésző előre-hátra gyorsítótárából.
A Back/Forward Cache (bfcache) a böngésző memóriájában tartja a már meglátogatott oldalt, így a vissza vagy előre gomb azonnal megjeleníti, újratöltés nélkül. A látogatónak ez gyors, az oldal pedig nem kap újabb betöltési terhelést. Bizonyos beállítások kizárják az oldalt ebből.
Hogyan mérjük
Szekció neve “Hogyan mérjük”A riport mobilnak emulált Chrome-ban betölti az oldalt, és két dolgot néz.
- Van-e a fő dokumentum válaszában
Cache-Controlfejléc, amely tartalmazza ano-storeértéket. - Van-e a
windowobjektumonunloadeseménykezelő (a böngésző hibakereső protokolljával kérdezi le, a betöltés után).
Eredmény:
- Megfelelő: egyik sincs.
- Hiba: legalább az egyik van. Súlyossága: alacsony. A riport megadja az okot (
no-store,unload, vagy mindkettő).
A teszt nem próbálja ki magát a visszalépést, és más kizáró okokat sem keres (például nyitott IndexedDB-kapcsolat, futó fetch kérés vagy window.opener). A web.dev jelzi, hogy a no-store kezelésén a Chrome dolgozik, így a hatás böngészőnként és verziónként változhat; a teszt a fejlécet tartalmazó oldalt a biztonság kedvéért hibának veszi.
Hogyan javítsd
Szekció neve “Hogyan javítsd”unloadhelyettpagehide. Apagehidemind kilépéskor, mind a bfcache-be kerüléskor lefut. A web.dev szerint azunloadFirefoxban asztali gépen kizárja az oldalt, a Chrome pedig elavulttá nyilvánította.- A
no-storehelyettno-cachevagymax-age, ha az oldal nem érzékeny (nem személyes adat, nem fiók). Ano-storeérzékeny oldalaknál maradhat. - A nyitott adatbázis- és hálózati kapcsolatokat a
pagehide-ban zárd, és apageshow-ban nyisd újra.
A no-store eltávolítása a szerver vagy a gyorsítótár-bővítmény beállítása; konkrét, ellenőrzött szerverdirektívát itt nem adunk, mert a fejlécet gyakran az alkalmazás vagy egy bővítmény állítja. Keresd meg, honnan jön (lásd: Cache-Control fejléc).
JavaScript
Szekció neve “JavaScript”window.addEventListener('pagehide', (event) => { // az unload-kezelő tartalma ide});A pagehide esemény event.persisted értéke igaz, ha az oldal a bfcache-be kerül.
Hogyan ellenőrizd
Szekció neve “Hogyan ellenőrizd”- Chrome fejlesztői eszközök: Application, Back/Forward Cache, “Run Test”. Megmutatja, visszaállítható-e az oldal, és mi akadályozza.
- A Lighthouse 10.0 óta tartalmaz bfcache-auditot.
- A
pageshoweseményben naplózd azevent.persistedértéket: igaz, ha az oldalt a bfcache állította vissza. - Futtasd újra a riportot.
Készült: