Forum Doku Wiki Blog

Forumsarchiv 2000, September
(HTTP) Datei nicht cachen sondern immer neu laden - Sonderfall!

archivierte Beiträge lesen

  1. (BROWSER) (HTTP) Datei nicht cachen sondern immer neu laden - Sonderfall! von Tommy, 09. 09. 2000, 15:33

(HTTP) Datei nicht cachen sondern immer neu laden - Sonderfall!

Der folgende Beitrag wurde am 09. 09. 2000, 15:33 Uhr von Tommy veröffentlicht.

Hallo Forumianer,

Bitte erst lesen, bevor ihr sagt, das problem wäre schon 100x besprochen worden ;)

ich habe habe ein Problem mit dem Cachen einer Seite. Es geht darum, dass sie sich ein externes JavaScript holt:

<script src="hierMeinExternesScript.js"></script>

Und nicht die Seite verändert sich dynamisch - sondern genau die Datei mit dem Script! (hierMeinExternesScript.js)

Alle META-Tags und Headers (no-cache, usw) zwingen zwar die Seite zum reload, nicht aber das externe script, das mittlerweile anders aussieht, als zuvor.

wie kann ich auch dieses Problem umgehen?

Danke im Voraus für Eure Hilfe,
Tommy

(HTTP) ...ich hab's! Die Lösung! ;-)

Der folgende Beitrag wurde am 09. 09. 2000, 21:35 Uhr von Tommy veröffentlicht.

Hallo Forum,

mich hat das ganze nicht in Ruhe gelassen, und ich habe verschiedenes ausprobiert... und dies hier hat funktioniert:

Statt:

<script src="hierMeinExternesScript.js"></script>

schreibe ich:

<script>
document.write('<script src="hierMeinExternesScript.js?x='+ Math.random() +'"></scr'+'ipt>');
</script>


so raffiniert muß man wohl sein, aber so funktionierts :)

kurze erklärung: ich übergebe zusätzlich eine variable mit einem zufälligen wert ans script, was dazu führt, dass die datei nicht mehr als die selbe erscheint!

Das caching wird verhindert!

Gruß,
Tommy

(HTTP) ...ich hab's! Die Lösung! ;-)

Der folgende Beitrag wurde am 10. 09. 2000, 22:27 Uhr von solei veröffentlicht.

Hi Forum

Scheisse. Jetzt hat schon wieder einer kapiert das ausprobieren und forschen, als zu posten zum Ergebnis führt..

Einen guten Wochenstart wünscht
Solei




> Hallo Forum,
>
> mich hat das ganze nicht in Ruhe gelassen, und ich habe verschiedenes ausprobiert... und dies hier hat funktioniert:
>
> Statt:
>
> <script src="hierMeinExternesScript.js"></script>
>
> schreibe ich:
>
> <script>
»»  document.write('<script src="hierMeinExternesScript.js?x='+ Math.random() +'"></scr'+'ipt>');
> </script>
>
>
> so raffiniert muß man wohl sein, aber so funktionierts :)
>
> kurze erklärung: ich übergebe zusätzlich eine variable mit einem zufälligen wert ans script, was dazu führt, dass die datei nicht mehr als die selbe erscheint!
>
> Das caching wird verhindert!
>
> Gruß,
> Tommy

habe ich was falsch verstanden?

Der folgende Beitrag wurde am 11. 09. 2000, 11:14 Uhr von Tommy veröffentlicht.

> Hi Forum
>
> Scheisse. Jetzt hat schon wieder einer kapiert das ausprobieren und forschen, als zu posten zum Ergebnis führt..
>
> Einen guten Wochenstart wünscht
> Solei


hi,

wieso scheisse?

natürlich kann man forschen und forschen, aber du kennst doch bestimmt die situation:

du forschst und experimentierst an einem problem, und nach einer woche hast du's endlich geschafft, und sagst zu einem kollegen: "ich habe das endlich geschafft! das ging so und so." und er sagt darauf? "was hast du gedacht? hätt ich dir gleich sagen können."

ich will mich daher vorerst umhören. falls ich hiermit jetzt falsch liege und das forum-prinzip falsch verstanden habe dann kläre mich mal auf...

gruß,
Tommy

(HTTP) Datei nicht cachen sondern immer neu laden - Sonderfall!

Der folgende Beitrag wurde am 10. 09. 2000, 00:42 Uhr von Björn Höhrmann veröffentlicht.

> ich habe habe ein Problem mit dem Cachen einer Seite. Es geht darum, dass sie sich ein externes JavaScript holt:
>
> <script src="hierMeinExternesScript.js"></script>
>
> Und nicht die Seite verändert sich dynamisch - sondern genau die Datei mit dem Script! (hierMeinExternesScript.js)

* Wie kann ich den Browser/Proxy anweisen, eine Seite nicht im Cache zu
  speichern?

    Generell sollte man das nicht via HTML machen, da der Quellcode vor
    allem von Proxies meist gar nicht geparsed wird. Ein Script oder der
    Server sollte angewiesen werden folgende Header zu senden:

        Cache-Control: max-age=0, no-cache, must-revalidate
        Expires: Thu, 30 Mar 2000 20:12:39 GMT
        Pragma: no-cache

    Das bei Expires: angegebe Datum sollte das aktuelle Datum im
    HTTP-Date Format sein. '0' ist ein ungültiger Wert!

    Falls der Apache Webserver verwendet wird und die Module mod_headers
    und mod_expires geladen wurden (bei < 2.0 in genau der Reihenfolge)
    kann man z.B. in einer .htaccess folgendes definieren:

        AddType "text/html; charset=iso-8859-1" .html
ExpiresActive On
ExpiresByType "text/html; charset=iso-8859-1" "now"
<Files ~ "\.html$">
            Header append Cache-Control "no-cache, must-revalidate"
            Header set Pragma "no-cache"
</Files>

    um alle .html Dateien nicht zu cachen. Ob man das wirklich will,
    muss man sich gut überlegen; die Webseite wird dadurch erheblich
    langsamer, da der Browser bei jedem Zugriff die Resource erneut vom
    Server holen muss.

    Wenn man die Möglichkeit nicht hat, kann man ein ähnliches Verhalten
    auch mit META-Tags erreichen:

        <meta http-equiv="Cache-Control"
              content="max-age=0, no-cache, must-revalidate">
        <meta http-equiv="Expires"
              content="Thu, 30 Mar 2000 20:12:39 GMT">
        <meta http-equiv="Pragma"
              content="no-cache">

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4