Gyorsítótár és szkriptoptimalizáló: hibák és megoldások
Miért okozhat hibát az űrlapoknál a gyorsítótár és a szkriptoptimalizálás, hogyan ismered fel, és hogyan zárd ki az űrlapoldalakat.
Ez a fejezet elmagyarázza, mit jelent a gyorsítótárazás és a szkriptoptimalizálás, miért zavarhatja meg a Gravity Forms működését, ha a tárhelyszolgáltatód vagy egy külső bővítmény bekapcsolja, és hogyan hárítod el a gondot.
Mi a gyorsítótárazás
Szekció neve “Mi a gyorsítótárazás”A gyorsítótár az oldalról pillanatképet készít, és gyorsabb tárolóban (helyben vagy a kiszolgálón) tartja. Amikor az oldalt legközelebb kérik, a kiszolgáló nem futtat PHP-t és nem fordul az adatbázishoz, hanem a kész másolatot adja vissza. Ez a ritkán változó, sok látogatót kiszolgáló statikus oldalaknál hasznos.
Mi a szkriptoptimalizálás
Szekció neve “Mi a szkriptoptimalizálás”A szkriptoptimalizálás többféle eljárás. Ilyen a minifikálás: elhagyja a szóközöket, rövidíti a változóneveket, tömörebb függvényeket használ, vagy összevon több, egymástól független JavaScript-fájlt egyetlenné. Hasonlóan gyorsítótárazhatja is a szkripteket.
Mi a hátránya
Szekció neve “Mi a hátránya”Gyorsítótárazás
Szekció neve “Gyorsítótárazás”Gyorsítótárat csak olyan oldalon használj, amely gyakorlatilag statikus, vagyis ritkán változik. Ne kapcsold be olyan oldalon, amely adatot dolgoz fel, fizetést kezel, vagy dinamikus folyamatot tartalmaz, ilyenek az űrlapok. Az olyan oldalak, amelyeken sok a változó elem (AJAX-szal betöltött tartalom, feltételes mezők, a felhasználó műveletére induló események), rossz jelöltek: a gyorsítótár elavult változatot szolgálhat ki, az oldal régi adatokat mutathat, vagy régi bemenetre reagálhat. Ettől hibás működés és váratlan eredmény lesz.
A gyorsítótár az AJAX-kérések nonce-ait is megzavarhatja: ha a gyorsítótárazott oldalon lejárt nonce van, a rá támaszkodó kérések nem mennek át az ellenőrzésen, ami működési vagy biztonsági hibaüzenetet okoz.
Szkriptoptimalizálás
Szekció neve “Szkriptoptimalizálás”A legtöbb gyorsítótár-bővítmény, egyes témák és oldalszerkesztők is tartalmaznak szkriptoptimalizálást: Minify (minifikálás), Combine (összevonás) és Defer (halasztás) néven találkozhatsz velük. Elméletben jól hangzik, a gyakorlatban viszont gyakran eltöri a szkripteket, mert automatikusan, minden szkriptre alkalmazódik, és nem veszi figyelembe, hogy egyik-másik már optimalizált.
A Gravity Forms szkriptjei is így járnak: eleve minifikáltak, és a defer attribútumot is megkapják. Ha ugyanazt a szkriptet kétszer minifikálják, a működése megsérülhet. Ez minden olyan szkriptnél gond, amelyet a gyártója már minifikált.
Meg tudja oldani a Gravity Forms?
Szekció neve “Meg tudja oldani a Gravity Forms?”Nem. A gyorsítótárazásnak rengeteg, külső cégek által fenntartott módja van, havonta újak jelennek meg, és egy oldalon akár több is dolgozhat egyszerre, néha úgy, hogy nem tudsz róla.
Ha nehezen megoldható űrlaphibád van, és bármilyen gyorsítótár vagy szkriptoptimalizálás be van kapcsolva, ezt tedd:
- Kapcsold ki az összes gyorsítótárat és szkriptoptimalizálást, a külső szolgáltatásokat is (például a Cloudflare Rocket Loader funkcióját). Ez döntő fontosságú: bekapcsolt gyorsítótárnál az ütközésvizsgálat téves eredményt adhat. Másik lehetőség, hogy az űrlapoldalakat kizárod a gyorsítótárból. Ha tesztoldalt vagy tesztűrlapot használsz a próbakörnyezetedben, azt is zárd ki, különben a vizsgálat félrevezető lehet.
- Ürítsd a gyorsítótárat, és a böngésző gyorsítótárát is, hogy biztosan friss erőforrásokkal dolgozz.
- Töltsd újra az oldalt, próbáld meg újra, és hasonlítsd össze az eredményeket.
- Ha kiderül, hogy a gyorsítótár vagy az optimalizáló okozza a hibát, zárd ki az összes űrlapoldalt (a próbakörnyezeti és tesztváltozatokat is) a gyorsítótárból és az optimalizálásból, hogy mindig friss adattal dolgozzanak. A pontos lépések a használt eszköz dokumentációjában vagy a tárhelyszolgáltatónál derülnek ki.
- Ha ez sem segít, hagyd kikapcsolva a gyorsítótárat és az optimalizálást, miközben ütközésvizsgálatot végzel (például az Állapotellenőrzés bővítménnyel, illetve ha az nem alkalmazható, kézi téma- és bővítményütközés-vizsgálattal).
Hogyan látod, hogy az oldalad gyorsítótárazott
Szekció neve “Hogyan látod, hogy az oldalad gyorsítótárazott”Az oldal forráskódja
Szekció neve “Az oldal forráskódja”A legtöbb gyorsítótár-bővítmény és néhány kiszolgálóoldali gyorsítótár HTML-megjegyzést fűz az oldal forráskódjának végére, jelezve, hogy az oldal gyorsítótárból érkezett. A böngésző „Oldal forrásának megtekintése” funkciójával ellenőrizheted. Ilyen megjegyzést tesz például a WP Fastest Cache.
Az oldal fejlécei
Szekció neve “Az oldal fejlécei”A válasz fejlécei is elárulják. A gyorsítótár-motortól függően különböző fejlécek jelennek meg, de egy közös van: a cache-control. Ez azt mondja meg a böngészőnek, meddig tartsa meg a másolatot, vagyis meddig ne kérje újra az oldalt. Emellett más fejlécek általában HIT értéket mutatnak, ha az oldal gyorsítótárból jött, és MISS értéket, ha nem. Gyakori fejlécek:
x-cacheproxy-cachecf-cache-status(Cloudflare)ki-cf-cache-statusésx-kinsta-cache(Kinsta)x-sucuri-cache(Sucuri)WPO-Cache-Status(WP-Optimize bővítmény)
A server és a via (nem mindig van jelen) fejlécből azonosíthatod a kiszolgálót vagy a gyorsítótár-motort. Cloudflare-es oldalon például a server értéke cloudflare.
A fejlécek megnézéséhez használd a böngésző fejlesztői eszközeinek Network (hálózat) lapját. Nyisd meg még az oldal betöltése előtt, töltsd be az oldalt, majd az oldal URL-jére mutató GET kérést kiválasztva nézd meg a fejléceket. A Chrome, a Firefox és a Microsoft Edge fejlesztői eszközei is tudják.
Hogyan zárd ki az oldalt a gyorsítótárból
Szekció neve “Hogyan zárd ki az oldalt a gyorsítótárból”Ha tudod, melyik gyorsítótár vagy optimalizáló működik az oldaladon, a saját beállításaiban kell kizárnod az űrlapot tartalmazó oldalakat, és az űrlap szkriptjeit az optimalizálásból. Ismert eszközök, amelyeknél van kizárási lehetőség:
- gyorsítótár és tárhely: Breeze (Cloudways), Cloudflare, NitroPack, SiteGround Speed Optimizer, Sucuri, W3 Total Cache, WP Engine, WP Fastest Cache, WP-Optimize, WP Rocket;
- szkriptoptimalizálók: Autoptimize, Elementor (elemgyorsítótár), Jetpack Boost, Perfmatters, SiteGround Speed Optimizer.
A Cloudflare, a Divi, a LiteSpeed Cache, a NitroPack, a W3 Total Cache és a WP Rocket esetében a tünetek és a beállítandó kizárások eszközönként eltérnek, ezért mindegyiknél külön ellenőrizd a gyorsítótár és az optimalizáló beállításait. Ha Elementort használsz, és nem gyorsítótárazási, hanem megjelenési hibát látsz, a gond inkább stílusütközés.
Segítő kiegészítők
Szekció neve “Segítő kiegészítők”Két külső fejlesztésű kiegészítő is ismert, amely a gyorsítótár okozta gondokat enyhíti.
Fresh Forms. A támogatott beágyazási módoknál és gyorsítótár-megoldásoknál automatikusan kizárja a gyorsítótárból az űrlapot tartalmazó oldalakat, és a Gravity Forms működéséhez szükséges szkripteket a támogatott JavaScript-optimalizálók elől is kizárja. Ha a beágyazási módot nem támogatja alapból, de a gyorsítótár támogatott, tartalmaz egy szűrőt, amellyel megadott oldalakon kényszerítheted a futását.
Gravity Wiz Cache Buster. Másképp közelít: nem az oldalt, hanem magát az űrlapot hagyja ki a gyorsítótárból, mégpedig úgy, hogy az űrlapot AJAX-szal tölti be (ez nem azonos az AJAX-os beküldéssel). A JavaScript-optimalizálásra nincs megoldása. Figyelj arra, hogy az AJAX-os betöltés megakadályozhatja, hogy az aktuális bejegyzést vagy oldalt igénylő összefűző címkék a várt értéket adják vissza.
A külső bővítményeket és kódrészleteket csak javaslatként említjük: nem teszteljük és nem támogatjuk őket, ezért te felelsz azért, hogy megfelelnek-e a funkcionális, biztonsági, jogi és költségigényeidnek, és hogy a későbbi frissítések után is jól működnek.
Készült: