Probleme bei Änderung in JS-Dateien

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme bei Änderung in JS-Dateien

    Hallo Leute,

    ich hab öfters das Problem, wenn ich eine neue Version meiner Javascript-Dateien auf den Server lade, dass meine User noch eine zeitlang mit der veralteten Version surfen, da die noch im Cache oder den temporären Dateien liegt. Wie kann ich sicherstellen, dass die neue Version geladen wird, wenn es eine gibt?

    Habe mir zwei Sachen überlegt:
    1. einen Zeitstempel an die Datei hängen etwas javascript.js?1295897390 (weiß nicht ob das hilftreich ist)
    2. Die Datei jedes mal umbennen.

    Habt ihr da gute Ideen?

    Gruß Tarlar

  • #2
    Hallo,

    das Problem ist bekannt, vor allem im Internet Explorer. Die best practise (auch laut MS selbst) ist genau die, die du selbst verwendest - also das mit dem Zeitstempel ist absolut in Ordnung. Ich sage meinen Kunden in der Entwicklungs- und Testphase immer: "Bitte immer mit Strg+F5 neu laden!" Dann wird die neueste Version geladen, zumindest in IE und FF, im Safari hilft nur Cache leeren.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Ist es auch normal, dass sie die Ladezeiten der Seite dadurch sehr stark erhöht?

      Könnte man auch so etwas wie eine Versionsnummer anbringen?

      <script type="text/javascript" src="includes/javascript/javascript.js?v=101></script>

      Und jedes mal, wenn man etwas ändert die Version in dem Fall auf v=102 setzen.

      Kommentar


      • #4
        Zitat von Tarlar Beitrag anzeigen
        Ist es auch normal, dass sie die Ladezeiten der Seite dadurch sehr stark erhöht?
        Das würde nur passieren, wenn man den Parameter ständig ändert.

        Könnte man auch so etwas wie eine Versionsnummer anbringen?
        Du kannst anbringen, was du willst - so lange es nur dafür sorgt, dass es sich um einen neuen, vom Client noch nicht vorher angeforderten URL handelt.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Das mit den Ladezeiten ist richtig, weil der Browser alles lädt und nicht mehr Cachen kann, aber irgendwann hat man ja mal eine finale Version zusammen und da entfernt man das wieder. Das mit Versionsnummern zu machen wäre in Ordnung, ist mir persönlich aber zu viel Arbeit. Bei jedem Upload des Scripts müsste man auch die HTML-Datei(en) ändern und hochladen - nein Danke

          Also meine Empfehlung: In der Test- und Einführungsphase mit Zeitstempel (auch wenn man dann das Caching generell umgeht), wenn es zuverlässig läuft, Zeitstempel entfernen.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Zitat von AmicaNoctis Beitrag anzeigen
            Also meine Empfehlung: In der Test- und Einführungsphase mit Zeitstempel (auch wenn man dann das Caching generell umgeht), wenn es zuverlässig läuft, Zeitstempel entfernen.
            Ich versteh nicht ganz, warum man damit das Caching umgeht. Wenn der Zeitstempel gleich bleibt, sollte der Browser doch die Datei nicht nochmal laden, oder?

            Kommentar


            • #7
              Ich verwende den Zeitstempel der Änderung der JS-Datei. Ein bisschen die Script-Helper im ZF aufgebohrt und gut ist. Keine Probleme.
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Zitat von h3ll Beitrag anzeigen
                Ich versteh nicht ganz, warum man damit das Caching umgeht. Wenn der Zeitstempel gleich bleibt, sollte der Browser doch die Datei nicht nochmal laden, oder?
                Wenn man (wie unset es macht) den der Datei nimmt nicht, ich mache es der Einfachheit halber meist mit der aktuellen Uhrzeit, also die des Requests, vereinfacht ausgedrückt:

                PHP-Code:
                <script type="text/javascript" src="script.js?<?php echo time(); ?>"></script>
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar

                Lädt...
                X