Artikel - Detailansicht

Icon Aktuelles Cache-Kontrolle

Arbeitet man mit dynamischen Seiten, ist es oft störend, wenn ColdFusion-Seiten vom Browser gecached werden. Bei einem erneuten Seitenaufruf könnte es dann passieren, dass der Browser die alte Seite aus dem lokalen Cache holte und nicht vom Server. Das hat zur Folge haben, dass der Inhalt der Seite nicht mehr aktuell ist oder der ColdFusion-Server nicht mehr die volle Kontrolle über den Programmablauf hat.

Es gibt deshalb verschiedenen Möglichkeiten das Cachen des Browsers zu verhindern.
Eine besteht darin, im HTTP-Header dem Browser mitzuteilen, die Seite nicht zu cachen ist bzw. das Verfallsdatum für das übermittelte Dokument so zu setzen, dass der Browser das Dokument für verfallen hält.

Mit dem <CFHEADER>-Tag hat man als ColdFusion-Programmierer die Möglichkeit eigenen Felder im HTTP-Header des zum Browser gesendeten Dokumentes anzulegen.

<CFHEADER NAME="Expires" VALUE="#now()#">
<CFHEADER NAME=
"Pragma" VALUE="no-cache">

Setzt man diese beiden Zeile an den Anfang des CF-Templates, werden die beiden Felder Expires und Pragma mit den angegebenen Werten im HTTP-Header angelegt. Diese werden vom Browser dann interpretiert.
Das Expires-Feld nennt das Datum und die Uhrzeit, nachdem das Dokument nicht mehr gültig ist und vom Browser neu geladen werden muss.

Das Pragma-Feld dient nicht nur der Cachekontrolle, sondern ist ein Mechanismus, um nicht standardisierte Felder zwischen Server und Client (und umgekehrt) auszutauschen. Der Empfänger des Feldes reagiert deshalb auch nur, wenn er den Befehl, der als Wert gesendet wird, versteht. In der Version HTTP 1.0 ist jedoch der Befehl no-cache standardisiert, womit der Server dem Client mitteilt, dass der Client das Dokument nicht cachen darf und stets die aktuelle Version vom Server holen soll.

Die zweite Möglichkeit der Cache-Kontrolle besteht in Form von speziellen Meta-Tags. die in den <Head>-Bereich des CFML-Templates integriert werden. Das sieht dann so aus:

<head>
 <meta http-equiv='expires' content='Tue, 01 Jan 2000 00:00:00 GMT'>
 <meta http-equiv='pragma' content='no-cache'> 
</head>

Die Tags haben die gleiche Bedeutung wie die HTTP-Felder.

Beim Netzscape funktioniert das alles auch ziemlich gut, allerding hält sich der Internet-Explorer nicht immer an diese Angaben und cached oft trotzdem.



Steffen Goldfuss steffen@goldfuss.de - 07.02.2000

Zurück


Das deutsche ColdFusion-Forum cfml.de ist das Portal für Einsteiger und Experten zum Thema ColdFusion und der ColdFusion Markup Language (CFML).

© 2017 Webdesign & Hosting: CHC ONLINE Kassel | SOLVA Content-Management-System CMS
Urlaub-Angebote.de - Urlaub mit Bestpreis-Garantie buchen