philip schoeningh: externe js-dateien nicht cachen?!?

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

  1. 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