Cache austricksen
gustl319
- javascript
Hi,
bei HTML kann man mit <meta http-equiv="expires" content="0"> den Cache des Browsers/Proxy austricksen. Aber was ist mit JavaScript-Dateien? Gibts da was ähnliches?
TIA
Gustl
hi,
Hi,
bei HTML kann man mit <meta http-equiv="expires" content="0"> den Cache des Browsers/Proxy austricksen. Aber was ist mit JavaScript-Dateien? Gibts da was ähnliches?
In der htaccess kannst du das mit Expires und Header, nur, wofür brauchst du sowas?
mfg
Ich habe ein Gerät mit eingebautem kleinen Webserver (keine Apache also und auch kein htaccess). Dieses Gerät kann ich mit verschiedenen Funktionen booten. Die HTML- und JavaScript-Dateien heissen zwar jedesmal gleich, haben aber unterschiedlichen Inhalt. Nach einem Funktionswechsel passiert es immer wieder, das vor allem der IE einen Fehler meldet, weil er noch die alten JavaScript-Dateien im Cache hat.
Gustl
hi,
Nach einem Funktionswechsel passiert es immer wieder, das vor allem der IE einen Fehler meldet, weil er noch die alten JavaScript-Dateien im Cache hat.
Häng doch einfach einen Parameter beim Scriptaufruf ans scr.
<script type="text/javascript" src="/script.js?param=1222"></script>
Und param erhält bei jedem Aufruf einen neuen, zufälligen Wert.
Oder du nimmst direkt eine PHP-Datei und schreibst dein Javascript in diese PHP-Datei -- musst nur darauf achten, dass sich diese PHP-Datei als Javascript-Ressource ausgibt.
PHP-Ressourcen werden per default nicht gecached.
mfg
hi,
Nach einem Funktionswechsel passiert es immer wieder, das vor allem der IE einen Fehler meldet, weil er noch die alten JavaScript-Dateien im Cache hat.
Häng doch einfach einen Parameter beim Scriptaufruf ans scr.
<script type="text/javascript" src="/script.js?param=1222"></script>
Und param erhält bei jedem Aufruf einen neuen, zufälligen Wert.
Oder du nimmst direkt eine PHP-Datei und schreibst dein Javascript in diese PHP-Datei -- musst nur darauf achten, dass sich diese PHP-Datei als Javascript-Ressource ausgibt.
PHP-Ressourcen werden per default nicht gecached.mfg
Die HTML-Daten werden nicht dynamisch erzeugt, es läuft auch kein Standard-Betriebssytem auf dem Gerät. Es gibt also kein PHP und ich tu mich auch sehr schwer die Daten dynaisch zu verändern.
Ich habe aber das HTTP Header Field 'Cache-Control' gefunden. Wenn ich das immer auf 'no-cache' setze müsste es doch gehen, oder?
hi,
Ich habe aber das HTTP Header Field 'Cache-Control' gefunden. Wenn ich das immer auf 'no-cache' setze müsste es doch gehen, oder?
Ich verstehe gerade dein Problem nicht. Geht es um eine Seite, auf die verschiedene Clients zugreifen, oder eine Anwendung, die nur du verwendest?
IE und Cache ist so'ne Sache für sich. IEs cachen, wenn sie es nicht sollen, und cachen nicht, wenn du es unbedingt willst.
Wenn diese Anwendung nur für dich ist, schliesse ich mich Martins vorschlag an.
mfg
Hallo,
hi,
Hi,
mfg
bitte zitiere maßvoll und sinnvoll; kein TOFU oder, wie hier, sogar Doppel-TOFU.
Ich habe ein Gerät mit eingebautem kleinen Webserver (keine Apache also und auch kein htaccess).
Und damit fällt wohl auch Malcolm Beck's Vorschlag aus, die Ressource mit PHP auszugeben.
Dieses Gerät kann ich mit verschiedenen Funktionen booten. Die HTML- und JavaScript-Dateien heissen zwar jedesmal gleich, haben aber unterschiedlichen Inhalt.
Wäre es nicht vielleicht sinnvoll, das Gerät je nach Funktion mit unterschiedlichen IP-Adressen zu betreiben, oder zumindest die Ressourcen unterschiedlich zu benamsen?
Nach einem Funktionswechsel passiert es immer wieder, das vor allem der IE einen Fehler meldet, weil er noch die alten JavaScript-Dateien im Cache hat.
Wenn das das einzige Problem ist, würde ich doch eher das normalerweise ungünstige Caching-Verhalten des IE anpassen. Im IE5/6 noch unter Internet-Optionen/Allgemein/Temporäre Internetdateien:Einstellungen zu finden:
Neuere Versionen der gespeicherten Seiten suchen
(o) bei jedem Zugriff auf die Seite
Die Defaulteinstellung "Automatisch" ist nicht wirklich brauchbar.
In IE7 und IE8 ist diese Einstellung möglicherweise an anderer Stelle oder unter anderer Bezeichnung zu finden.
Ciao,
Martin