Webseite immer mit alten Javascript Code (weil JS im Cache)

  • Hallo,

    hoffe hier bin ich mit mein Problem richtig. Folgendes:
    Ich entwickle mit dem Google Web Toolkit Webseiten. Was passiert da? Ganz kurz: Serverseitig läuft Java und Clientseitig (Browser) Javascript. Mehr ist erstmal garnicht wichtig. Wichtig ist, dass Firefox einen Bug hat oder sowas. Denn das Problem ist NUR unter FF.

    Eine Seite wird entwickelt, auf dem Server hochgeladen alles okey. Man ändert was an der Seite (Clientseite). Lädt die aktuelle Version hoch. Startet die Seite in FF und was passiert? Keine Änderung. Warum? Nunja, irgendwie nimmt FF alles ausm Cache und das sind alte Werte. Andere Browser (ja sogar der IE6) zeigen wieder die aktuellen Sachen an, aber FF kriegt das einfach nicht hin. Erst wenn man komplett alles ausm Temp löscht ist FF in der Lage mit der neuen Seite zu arbeiten. Traurig sowas.

    Warum ist das eigentlich so?

    Edit: Natürlich auf allen Rechner. Nicht nur bei mir. FF 3.6-4.0

  • Hi, danke das hört sich gut an:

    Zitat von .Ulli

    Und warum sagst du es nicht dem Server ?

    Der Server ist Eigentümer der Cache-Inhalte, der Fx ist ein schlichter Besitzer. Die Angaben des Eigentümers zu den Cache-Inhalten werden vom Besitzer voll respektiert.

    Stelle die vom Server ausgelieferten Header bezüglich des Cache richtig ein und das "Problem" ist gegessen.

    Jetzt ist nur noch die Frage: Wie beziehungsweise wo muss man da was am Server einstellen? Kann man nicht einfach im HTML Header irgendwas mit "Cache nicht" mitgeben? Das wäre mir am liebsten, so das der FF User manuell was einstellen muss halte ich nicht so toll.

  • Hi. Ja also das wurde mit

    Code
    <meta http-equiv="cache-control" content="no-cache">
            <meta http-equiv="pragma" content="no-cache">

    getestet, aber FF stört das nicht. Wäre auch zu einfach gewesen. Frage mich zwei Sachen:
    1.) Gibt es noch andere Möglichkeiten, vielleicht etwas was der FF versteht?
    2.) Warum dieses Problem NUR mit FF existiert? (Opera, Chromium, IE6-9, Midori - machen alle so wie sies machen sollten...)

  • Zitat von javascript

    aber FF stört das nicht.

    Weil er den Angaben des Servers den Vorzug gibt.

    Lies mal hier: Caching-Tutorial für Webautoren und Webmaster

    Falls du nicht den Server ändern magst /darfst, dann bleibt dir noch die Möglichkeit eines lahmen Fx, indem du in about:config die Einstellungen browser.cache.memory.enable und browser.cache.disk.enable auf false setzt. Damit schaltest du alle Caches ab und der Fx muss die Inhalte vom Server laden.

    Es bedarf wohl keiner weiteren Erklärung für ein empfohlenes eigenes Profil für die Entwicklung.

  • Wer entwickelt, kann sich auch mit Addons wie der Webdeveloper Toolbar helfen. Die Erweiterung bietet viele entwicklerrelevante Schalter für Cache, Referer, usw. an. Da muss man dann nicht ständig im about:config rumgondeln.

    Firefox gibt Datei-Header-Angaben IMMER den Vorrang. Die Infos in den HTML-Seiten sind im Grunde nur der Fallback, für den Fall das der Header der Datei (nicht <head>!) nichts steht. Die meisten Server aber liefern Seiten (und alle anderen Dateien) mit einer Reihe Standardwerten im Header aus. Diese kann man bereits serverseitig mit Hilfsmitteln wie einer .htaccess-Datei oder einer serverseitigen Scriptsprache wie PHP "überschreiben". Die Angaben <head> werden erst dann von Firefox angeschaut, wenn im Header zu einem bestimmten Eintrag absolut gar nichts steht.

    Und das ist im Grunde auch das nach Definition richtige Verhalten. Der IE z.B. ignoriert viele Header-Informationen und macht wie er es für richtig hält. Wenn Firefox was anderes wie andere Browser macht, ist das meist ein Hinweis darauf, dass die anderen was falsch machen. Die meisten Browser halten sich an das was der IE macht, um nicht ausgesperrt zu werden. Und wie gesagt, der IE macht vieles falsch. Nur die Entwicklung vom Firefox ist nicht auf Nutzerzahlen ausgelegt, sondern auf ein offenes und "richtiges" Netz. Und darum versucht er es richtig zu machen. Auch wenn das oft dazu führt, dass einige Seiten im Netz gefühlt falsch (oder gar nicht) laufen. Im Grunde auch eine Ermahnung an Entwickler ordentlich zu arbeiten, bzw. sie auf Fehler hinzuweisen. ; )