Versio

Cache Controllers inbouwen

Overzicht Reageren

Merijn Venema

Merijn Venema

15/12/2010 23:42:05
Quote Anchor link
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
 
PHP hulp

PHP hulp

24/05/2012 00:08:20
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Karl Karl

Karl Karl

15/12/2010 23:44:25
Quote Anchor link
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.
 
Jelmer rrrr

Jelmer rrrr

15/12/2010 23:59:04
Quote Anchor link
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.
 
Merijn Venema

Merijn Venema

16/12/2010 00:24:36
Quote Anchor link
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.
 
Kris Peeters

Kris Peeters

16/12/2010 09:31:45
Quote Anchor link
... en is er nog iets dat niet lukt?
Volgens mij staan alle oplossingen hier al aangereikt.

Je kan dingen doen als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
...
echo '<html>
  <head>
    <link rel="stylesheet" type="text/css" href="style.css?t='
. time() .'" />
  ...
  '
;
?>
Gewijzigd op 16/12/2010 10:19:57 door Kris Peeters
 



Overzicht Reageren

Get Adobe Flash player