ugrás a tartalomhoz

Javascript és CSS fájlok automatikus frissítése

vbence · 2006. Május. 25. (Cs), 09.21
Miként védekezhetünk a gyorstárban maradt, aktualitásukat vesztett szkriptek, stíluslapok okozta hibásan működő, megjelenő oldalak ellen
 
1

kell a mod_rewrite?

Anonymous · 2006. Május. 25. (Cs), 10.30
Az utolso megoldas tetszik, de szerintem meg lehet uszni mod_rewrite nelkul is, ha a menu.js.12345678 helyett menu.js?12345678-t hasznalnank. Vagy esetleg ezt mar nem ugy cache-elne valamelyik bongeszo, ahogy szeretnenk?
2

igen

Bártházi András · 2006. Május. 25. (Cs), 10.37
Igen, nem kell mod_rewrite, teljesen jó a kérdőjeles megoldás is. Viszont a timestamp nem jó, oda bizony verziószám kell - hiszen ellenkező esetben gyakorlatilag nem lesz cacheelés. Ha ez lenne a cél, azt másképp is meg lehetne úszni, de ez ne legyen cél.
3

először én is azt hittem

Anonymous · 2006. Május. 25. (Cs), 10.45
nagyon is jó az a timestamp. először én is egyből azt akartam írni, hogy így nem is lesz cache, de
Ha megkaptuk a fájl helyét az aktuális fájlrendszerben lekérdezzük az utolsó módosítás idejét.
[...]
Ennek eredménye egy URI (URL), ami automatikusan változik a fájl minden módosulásával

tehát nem állandóan lesz más az érték, hanem csak akkor, amikor megváltozik a fájl.

gex
4

timestamp

Anonymous · 2006. Május. 25. (Cs), 10.46
Ha a timestamp a file utolso modositasanak datuma (ahogy a cikkben is van), akkor szerintem lesz cache-eles, pont mintha verzioszam lenne ott, csak igy nem kell minden modositaskor a verzioszamot atirni.
5

ExpiresByType

Balogh Tibor · 2006. Május. 25. (Cs), 11.32
András - a tőle megszokott módon - valószínűleg csak átfutotta a cikket, ezért a tévedése. A timestamp a fájl módosításának timestamp-je.

A mod_expires részhez:
A nulla lejárati idő nem tiltja a fájl cache-elését. De így minden oldalletöltésnél lekéri a böngésző a fált, ellenben ha nem változott meg, akkor csak egy 304 kódot fog kapni. Ami - ha még csak egy kérés - még kis forgalmú weblapoknál sem túl gazdaságos megoldás.
6

Mea culpa

Bártházi András · 2006. Május. 25. (Cs), 15.49
Valóban tévedtem, és azért, amiért írod. Ezúton elnézést is kérnék. :( A szerver oldali változás ellenőrzést én egy kicsit másképp oldanám meg, úgy, hogy ne kelljen minden kiszolgáláskor több fájlműveletet is elvégezni (még ha ezt cachelheti is adott esetben az oprendszer), de valóban azt hittem, hogy az éppen aktuális idő kerül oda.

Egyébként a ThinkVitamin hasábjain is ez a kiemelt téma éppen.
7

bárányborda

vbence · 2006. Május. 25. (Cs), 17.02
A kérdőjel jó ötlet, nekem kezdettől fogva egy valódi filenév emulálása lebegett a szemem előtt. Kitesztelem a kérdőjelet...
Azzal semmiképpen nem értek egyet, hogy a módosítási dátum lekérdezése gazdaságtalan lenne. Ugyan sose mertem megnézni a php ide vágó wrapper funkcióját, de nem hinném, hogy sokkal több van benne egy rendszerhívásnál. Ami gyorsabb lehet, az maximum valami shared memory-s megoldás, de akinek számít az erőforrás-használat az nem php-t választ.. :)
8

Ami gyorsabb lehet...

Bártházi András · 2006. Május. 25. (Cs), 18.17
...az egy include fájl, ami valahogy (verziókezelőből, cronból, stb.) automatikusan generálódik. Nem tudom, lehet, hogy igazad van, hogy nem kell ezzel foglalkozni. Valamiért bántja a csőrömet ez a timestampes megoldás, de mivel abszolút logikusan hangzik amit írsz, hát lehet, hogy rászokom... ;)
9

Cache control headerek?

janoszen · 2006. Május. 25. (Cs), 19.33
Elvileg erre találták ki a cache control headereket. Azokkal nem megoldható ez az egész mizéria?