Cache Controllers inbouwen
Beste leden,
Heb sinds jaar en dag cache controllers, maar het grote nadeel tijdens ontwikkelen is dat ik in dit geval de cache functies van de browsers moet uitschakelen omdat ik anders niet continu de nieuwste bestanden binnen krijg.
Nu heb ik her en der van alles gelezen, maar ben er nog steeds niet helemaal uit wat nu een goede aanpak is. Ik gebruik overigens een statische functie om dit te realiseren. Tijdens de request wordt dus een cache header mee gestuurd.
Nu las ik laatst ergens dat je bestanden ook een ? get variabele mee kan geven om te valideren of het hier om een nieuwe file gaat. Iemand enig idee hoe dit gerealiseerd kan worden?
Dus voor je css zou je dan bijvoorbeeld:
styles.css?v=001230012030 mee kunnen geven. Dit zou een timestamp kunnen zijn welke je dan kan verifieren met de cache headers. Als iemand enig idee heeft?
Groet
Heb sinds jaar en dag cache controllers, maar het grote nadeel tijdens ontwikkelen is dat ik in dit geval de cache functies van de browsers moet uitschakelen omdat ik anders niet continu de nieuwste bestanden binnen krijg.
Nu heb ik her en der van alles gelezen, maar ben er nog steeds niet helemaal uit wat nu een goede aanpak is. Ik gebruik overigens een statische functie om dit te realiseren. Tijdens de request wordt dus een cache header mee gestuurd.
Nu las ik laatst ergens dat je bestanden ook een ? get variabele mee kan geven om te valideren of het hier om een nieuwe file gaat. Iemand enig idee hoe dit gerealiseerd kan worden?
Dus voor je css zou je dan bijvoorbeeld:
styles.css?v=001230012030 mee kunnen geven. Dit zou een timestamp kunnen zijn welke je dan kan verifieren met de cache headers. Als iemand enig idee heeft?
Groet
Gesponsorde koppelingen:
Wat zijn dan de bestanden waarvan de nieuwste versie moet worden opgehaald?
Als je idd overal in je code time() o.i.d. plaatst als parameter dan wordt de browser geforceerd om nieuwe data op te halen.
Als je idd overal in je code time() o.i.d. plaatst als parameter dan wordt de browser geforceerd om nieuwe data op te halen.
Merijn Venema op 15/12/2010 23:42:05:
styles.css?v=001230012030 mee kunnen geven. Dit zou een timestamp kunnen zijn welke je dan kan verifieren met de cache headers. Als iemand enig idee heeft?
Expire headers slaan op een url, dus wanneer de url verandert gaat het volgens de browser om een ander bestand, en daarom haalt hij het bestand opnieuw op. Dus wanneer je de filemtime in je url zet, verandert de url iedere keer wanneer je het bestand update, en download de browser het opnieuw.
Jelmer, je helpt me inderdaad al op de goede weg.
@Karl, het gaat om een collectie van .css bestanden. Ik heb nu een styles.php bestand welke een css header + cache header als output terug stuurt.
In m`n index.php kan ik dan gewoon styles.php includen. Hier zit dus die header in welke om `t uur gewijzigd wordt. Maar als je lekker aan het devven bent, dan krijg je hier dus problemen mee.
Wat ik dus zelf aan het knutselen ben is een functie welke een styles.css terug geeft gebasseerd op die ?v=. Dat is op dat moment een mooi referentiepunt om te kijken of er wijzigingen plaats hebben gevonden.
@Karl, het gaat om een collectie van .css bestanden. Ik heb nu een styles.php bestand welke een css header + cache header als output terug stuurt.
In m`n index.php kan ik dan gewoon styles.php includen. Hier zit dus die header in welke om `t uur gewijzigd wordt. Maar als je lekker aan het devven bent, dan krijg je hier dus problemen mee.
Wat ik dus zelf aan het knutselen ben is een functie welke een styles.css terug geeft gebasseerd op die ?v=. Dat is op dat moment een mooi referentiepunt om te kijken of er wijzigingen plaats hebben gevonden.
... en is er nog iets dat niet lukt?
Volgens mij staan alle oplossingen hier al aangereikt.
Je kan dingen doen als:
Volgens mij staan alle oplossingen hier al aangereikt.
Je kan dingen doen als:
Code (php)
Gewijzigd op 16/12/2010 10:19:57 door Kris Peeters



