externe js-dateien nicht cachen?!?
philip schoeningh
- javascript
hi
ich habe in einer html seite ein externe javascript-datei eingebunden. diese js-datei wird
dynamisch erzeugt und darf deshalb nicht im browsercache gespeichert werden.
die html-seite habe ich mit den meta-tags "expires content=0" und "pragma content=no-cache"
ausgestattet. trotzdem laed der NN4.6 sie aus dem cache.
kann es seien, dass sich das expires-metatag nur auf die html-datei, nicht aber auf externe
referenzen(bilder,scriptdateien) bezieht?
..oder, dass der browser die html-seite trotzdem cacht und sie erst in der naechsten session
loescht?
vielen dank im voraus!
philip schoen
Moin,
ich habe in einer html seite ein externe javascript-datei eingebunden. diese js-datei wird
dynamisch erzeugt und darf deshalb nicht im browsercache gespeichert werden.
die html-seite habe ich mit den meta-tags "expires content=0" und "pragma content=no-cache"
ausgestattet. trotzdem laed der NN4.6 sie aus dem cache.
zuerst kann man das Cache-Verhalten des Browsers in den Einstellungen
anpassen (unter Einstellungen-Erweitert-Cache ...). Bei dynamisch generierten
Dateien sollte also *jedesmal* ein Vergleich zwischen Datei im Cache und
Server-Output erfolgen.
Dummerweise kann man natürlich nicht jedem User vorschreiben, wie er
seine Cache-Einstellungen gefälligst zu konfigurieren hat. Eine Idee wäre, die
URL des cgi-Skripts (Du benutzt doch ein cgi um die js-Datei zu generieren...?)
etwas "zufällig" zu gestalten.
Also statt
http://hostname/cgi-bin/gen_js.cgi
eine URL der folgenden Form verwenden:
http://hostname/cgi-bin/gen_js.cgi/zufalls_string
Der Server sucht jetzt nicht etwa in dem nicht-existenten Verzeichnis ../zufalls_string
herum sondern gibt weiterhin brav das Ergebnis von gen_js.cgi zurück, während sich
der String "/zufalls_string" in PATH_INFO findet (und z.B. als Default-Dateiname
verwendet wird, falls jemand das Resultat von gen_js.cgi downloaden will).
Wenn man es so hinbekommt, daß jedesmal ein anderer "zufalls_string" in die URL eingesetzt
wird, dann kann der Browser den Cache gar nicht verwenden, weil er nicht wissen kann,
ob ../gen_js.cgi/... ein Verzeichnisname oder ein Skript auf dem Server ist.
Viele Grüße
Andreas