Andreas: Probleme mit Netscape 4.75 Cache

Hallo,

ich habe das Problem, daß Netscape 4.75 Grafiken, die ich über JavaScript
im Hintergrund lade, nicht aktualisiert, wenn die Seite neu geladen
wird, obwohl ich sowohl Speicher- als auch Festplattencache auf null gesetzt
habe. Mit MS Internet Explorer 5.5 und Opera 5.11 funktioniert es dagegen.
Auch mit '<meta http-equiv="expires" content="0">' (bzw. content="new")
habe ich kein Erfolg. Weiß jemand Rat?

Grüsse, Andreas

  1. Hallo!

    Weiß jemand Rat?

    Gleichzeitig 'Neu Laden' und 'Shift' drücken.

    Gruss Markus

    1. Hallo!

      Weiß jemand Rat?

      Gleichzeitig 'Neu Laden' und 'Shift' drücken.

      Gruss Markus

      Das hilft mir leider nicht. Ich habe eine Imagemap über die mit mouseover
      die Bilder, die über das Javascript geladen worden sind, gewechselt werden
      und eigentlich, wie es der Internet Explorer auch tut, vom Server neu
      geladen werden sollten (es handelt sich um dynamisch erzeugte Gifs, die
      alle 15 sec aktualisiert werden).

      Gruss, Andreas

      1. Hallo Andreas,

        das ist ein bekanntes Netscape-Problem. Dazu habe ich eine Lösung in der Formus-Auslese gefunden, die aber leider das Problem nicht vollständig löste, denn css gehen dabei immer noch verloren.

        Mit folgendem Ansatz kannst Du das Problem vollständig "ausmerzen":

        In der Datei:

        if(!window.saveInnerWidth)
        {
        window.onresize = resize;
        window.saveInnerWidth = window.innerWidth;
        window.saveInnerHeight = window.innerHeight;
        }

        Die Funktion resize() kann dort oder in einer externen js-Datei stehen:

        function resize()
        {
         if (saveInnerWidth != window.innerWidth || saveInnerHeight != window.innerHeight)
         {
         location.replace(document.location.href);
         }
         }

        1. if(!window.saveInnerWidth)
          {
          window.onresize = resize;
          window.saveInnerWidth = window.innerWidth;
          window.saveInnerHeight = window.innerHeight;
          }

          Die Funktion resize() kann dort oder in einer externen js-Datei stehen:

          function resize()
          {
          if (saveInnerWidth != window.innerWidth || saveInnerHeight != window.innerHeight)
          {
          location.replace(document.location.href);
          }
          }

          Hallo Thomas,

          wenn ich das richtig verstehe, funktioniert dies nur, wenn die Fenstergröße
          verändert wird. Das würde mir nicht helfen. Aus irgendeinem Grund lädt
          Netscape die Bilder nicht neu, bei neuaufruf der Seite.
          Laden tue ich die Bilder mit:

          bild=new Array()
          bild[1] = new Image();
          bild[1].src = " ... ";
          usw.

          Gruß, Andreas

          1. Hallo,

            Du kannst doch eine function schreiben

            function preimg(){
            bild=new Array()
            bild[1] = new Image();
            bild[1].src = " ... ";
            usw.}

            und im body für Netscape schreiben onload="preimg()"
            usw., und wenn das nicht klappt weil Netscape
            wirklich nicht neu lädt könnte man testen ob
            umfangreichere Adressierung sr="www.meine.de/..."
            hilft.
            Wie ist das eigentlich, kann man vielleicht
            im Server-logfile erkennen, fragt der Browser
            nach der Datei und kriegt die nicht neu weil sie
            angeblich unverändert ist ?

            Grüsse

            Cyx23

            1. Hallo,

              Du kannst doch eine function schreiben

              function preimg(){
              bild=new Array()
              bild[1] = new Image();
              bild[1].src = " ... ";
              usw.}

              und im body für Netscape schreiben onload="preimg()"
              usw., und wenn das nicht klappt weil Netscape
              wirklich nicht neu lädt könnte man testen ob
              umfangreichere Adressierung sr="www.meine.de/..."
              hilft.

              Habe ich ausprobiert. Dies funktioniert leider nur, wenn ich Speicher- und
              Festplattencache auf 0 setze (was bei den meisten wahrscheinlich nicht der
              Fall ist), ansonsten das alte Problem.

              Wie ist das eigentlich, kann man vielleicht
              im Server-logfile erkennen, fragt der Browser
              nach der Datei und kriegt die nicht neu weil sie
              angeblich unverändert ist ?

              Weiß ich leider nicht.

              Grüsse, Andreas

              1. Hallo nochmal,

                Habe ich ausprobiert. Dies funktioniert leider nur, wenn ich Speicher- und
                Festplattencache auf 0 setze (was bei den meisten wahrscheinlich nicht der
                Fall ist), ansonsten das alte Problem.

                da gibt's vielleicht noch Möglichkeiten, ist natürlich etwas aufwändig alles zu versuchen was irgendwie klappen könnte.
                z.B. (nur eine spontane Idee, nicht getestet)document.images[i].reload() einbauen in die function.
                Oder -auch nur ein Versuch- wenn das geht falsche unbenutzte Dateiendungen für das Bild verwenden, kann aber Probleme mit Opera geben.
                Ansonsten könnte das Bild über eine Seite eingebaut werden (für Netscape z.B. in einem <Layer src=eins.html> die komplett ausgetauscht wird
                über eine zweite Datei, also Datei eines mit Bild ruft(ersetzt sich) Datei zwei, die nur wieder Datei eins (und dann hoffentlich mit
                aktuellem Bild) lädt, nicht sehr elegant aber könnte m.E. helfen.

                Weiß ich leider nicht.

                wenn du an Logfiles rankommst sieht man das an den Nummern,
                200 ist neu geladen, 304 nicht verändert.

                Grüsse

                Cyx23

                1. Hallo Cyx23,

                  nach langem ausprobieren, habe ich dann doch eine Lösung (eigentlich recht
                  einfach) gefunden. Für Netscape muß der Ladeaufruf der Bilder in die
                  Funktion die die Bilder wechselt (für MS IE muß dies außerhalb stehen).
                  Mit location.reload() werden die Bilder dann aktualisiert, auch wenn der
                  Browser cachen darf.

                  Grüsse und Dank, Andreas

      2. Hallo!

        Da hab' ich Dich wohl falsch verstanden. Dann dürftest Du sowas suchen:

        <meta http-equiv="cache-control" content="no-cache">
        oder
        <meta http-equiv="Pragma" content="no-cache">

        Gruss Markus

        1. <meta http-equiv="cache-control" content="no-cache">
          oder
          <meta http-equiv="Pragma" content="no-cache">

          Hallo Markus,

          hab ich auch schon versucht, hilft auch nicht.

          Gruß, Andreas