Raphael Dannecker: Frameset Reload

Hi,

ich hab ein "kleines" Problem, zu dem ich auch schon einiges im Forum gefunden habe - nur keine Loesung. Jetzt möchte ich hier nochmal nachfragen, ob es eine logische Erklärung folgendes Phänomens gibt:

1. Ich erstelle ein Frameset, klicke mich ein paar Frames weiter und fuehre einen Reload durch und lande wieder auf der urspruenglichen Page (diejenige, die im Frameset steht). Also nicht die Seitenkonstellation, wie sie vor dem Reload war.

2. Ich lege das selfhtml-Verzeichnis auf meinen Web-Server und gehe auf den Quickbar (dann hat man ja ebenfalls ein Frameset). Nach ein paar Klicks druecke ich nochmals Reload und lande nun auf den gleichen Seiten wie vor dem Reload. Also genau so, wie man es erwarten wuerde.

Ich verwende den Netscape Navigator 4.6x unter Linux.
Hat jemand vielleicht eine Erklaerung oder eine Lösung?

Gruss Raphael

  1. Hi,

    ich hab ein "kleines" Problem, zu dem ich auch schon einiges im Forum gefunden habe - nur keine Loesung. Jetzt möchte ich hier nochmal nachfragen, ob es eine logische Erklärung folgendes Phänomens gibt:

    1. Ich erstelle ein Frameset, klicke mich ein paar Frames weiter und fuehre einen Reload durch und lande wieder auf der urspruenglichen Page (diejenige, die im Frameset steht). Also nicht die Seitenkonstellation, wie sie vor dem Reload war.

    2. Ich lege das selfhtml-Verzeichnis auf meinen Web-Server und gehe auf den Quickbar (dann hat man ja ebenfalls ein Frameset). Nach ein paar Klicks druecke ich nochmals Reload und lande nun auf den gleichen Seiten wie vor dem Reload. Also genau so, wie man es erwarten wuerde.

    Ich verwende den Netscape Navigator 4.6x unter Linux.
    Hat jemand vielleicht eine Erklaerung oder eine Lösung?

    Gruss Raphael

    mit ms ie5 auf ms win98 / also das genaue gegenteil ist bei 1. das gleiche

    so gehört es sich normal ja auch weil wenn man ein reload macht dann muss er selbstverständlich im äussersten frame anfangen und sich nach innen durcharbeiten - allein schon weil javascripts so ausgerichtet sein könnten das ein script im frame auf etwas in einem script seines elternfensters zugreift was ja sonst nicht vorhanden währe wenn die frames von aussen nach innen geladen werden

    oder mal angenommen in einem frameset ist ein javascript wo eine variable definiert wird - nach dem script kommt das frameset und die seite wird aufgeteilt... im 1. der beiden teile ist wieder ein javascript was in seinem elternframe die variable verändert, im 2. teil sind einige links die dem 1. teil seiten zuweisen in denen wieder javascripts vorkommen, die zb. bei einem click auf einen button die veränderte variable des elternframes brauchen - wird nun das ganze von innen nach aussen geladen so ist die variable im elternframe nicht die gleiche und es kann auf diese weise zu fehlern kommen...

    bla bla bla man ich hab mich ja schon wieder verlabert :))

    1. Hi!

      so gehört es sich normal ja auch weil wenn man ein reload macht dann muss er selbstverständlich im äussersten frame anfangen und sich nach innen durcharbeiten - allein schon weil javascripts so ausgerichtet sein könnten das ein script im frame auf etwas in einem script seines elternfensters zugreift was ja sonst nicht vorhanden währe wenn die frames von aussen nach innen geladen werden

      So einfach ist die Sache leider nicht!

      Ich hatte ein Frameset, das beim Reload eine JS-Fehlermeldung brachte. (Win95c IE 5.0)
      Die kam dadurch zustande, dass zuerst der linke, dann der rechte aktuell angezeigte (!) Frame neu geladen wurden, was in dieser Reihenfolge nicht vergesehen war. (Ich habe den linken aus dem rechten heraus laden lassen)
      der linke produzierte also eine Meldung, da der rechte noch nicht da war und im deshalb etwas fehlte.
      Wenn das Script kurz (10ms?) gewartet hätte wäre der rechte auch geladen gewesen... ;-)

      Jedenfalls, nachdem wegklicken der Meldung begann der ladevorgang erneut, und in beiden Frames wurde die originale (!) Seite geladen...

      Zu Self:
      Schaut euch das mal an: In der Adresszeile steht immer die gleiche URL, im Verlauf aber nicht.
      JavaScript hat doch da was mit history... (nicht nachgeschaut/ausprobiert)
      vielleicht hängt's damit zusammen?

      Stefan fragen... ;-)

      mfg
      Stiefel

  2. Hi,

    ich hab ein "kleines" Problem, zu dem ich auch schon einiges im Forum gefunden habe - nur keine Loesung. Jetzt möchte ich hier nochmal nachfragen, ob es eine logische Erklärung folgendes Phänomens gibt:

    1. Ich erstelle ein Frameset, klicke mich ein paar Frames weiter und fuehre einen Reload durch und lande wieder auf der urspruenglichen Page (diejenige, die im Frameset steht). Also nicht die Seitenkonstellation, wie sie vor dem Reload war.

    2. Ich lege das selfhtml-Verzeichnis auf meinen Web-Server und gehe auf den Quickbar (dann hat man ja ebenfalls ein Frameset). Nach ein paar Klicks druecke ich nochmals Reload und lande nun auf den gleichen Seiten wie vor dem Reload. Also genau so, wie man es erwarten wuerde.

    Ich verwende den Netscape Navigator 4.6x unter Linux.
    Hat jemand vielleicht eine Erklaerung oder eine Lösung?

    Gruss Raphael

    Hallo Raphael!
    Arbeite exakt am selben Problem! Für MSIE 5 habe ich schon eine Lösung gefunden (noch in der Erprobungsphase), die aber mit Netscape nicht funktioniert.
    Ich habe ein Frameset, das oben aus einem Rahmen für eine Sequenz von Bildern und unten aus einer Steuerungsleiste besteht. In der Steuerungsleiste ist im Body-Tag ein JS-Aufruf "onResize" enthalten, über den mittels "window.parent.frames[0].location.replace(aktuelleURL)" das Bilderfenster beim Reload, in diesem Fall beim Ändern des Fenstergröße, aktualisiert wird. Da MSIE normalerweise beim Ändern der Fenstergröße einen Reload nicht automatisch durchführt, wird er auf diese Weise erzwungen. Netscape führt nur nach einem "onResize"-Aufruf mit "location.reload(false)" im Frameset einen Reload durch und läßt sich durch keinerlei Tricks darin beeinflussen, weshalb penetranterweise immer wieder die Ausgangskonstellation hergestellt wird. Eine andere Lösung wäre, die Adresse des Framesets von der Steuerungsleiste aus mit "window.parent.frames.location.replace()" bei jedem Weiterklick zu aktualisieren und damit "nachzuladen". Dabei werden allerdings beide Frames neu geladen, obwohl der untere Rahmen eigentlich unverändert bleibt und stehen bleiben könnte, d.h. der Komfort ist weg!
    Falls Dir noch etwas dazu einfallen sollte, ich bin für jede Anregung in dieser Sache dankbar!
    Gruß
    Thomas
    P.S. Schau doch mal in den Quelltext besagter Frames von selfhtml!

    1. Hallo Thomas,
      Hallo Raphael,

      unter <../../sfarchiv/2000_3/t16557.htm#a83685> hatte ich mal eine
      Lösung gepostet, die dafür sorgt, das praktisch immer beim Reload der aktuelle
      Zustand des Framesets reloaded wird.
      Ist allerdings nur ne Simpelvariante für einen Navi & einen Inhaltsframe.
      Die Methode arbeitet (erfreulich) stabil und ist (bei entsprechender Anpassung)
      auch für komplizierte Framesets gut.

      Gruss,
      Carsten

  3. Ich hab jetzt nochmal naeher nachgeschaut:

    1. Ich erstelle ein Frameset, klicke mich ein paar Frames weiter und fuehre einen Reload durch und lande wieder auf der urspruenglichen Page (diejenige, die im Frameset steht). Also nicht die Seitenkonstellation, wie sie vor dem Reload war.

    Es werden beim Reload alle Dateien nochmal angefordert.
    Der Webserver (Apache) liefert auf die Anfragen ein 200 zurueck.
    Er liefert die Seiten also nochmal aus.

    1. Ich lege das selfhtml-Verzeichnis auf meinen Web-Server und gehe auf den Quickbar (dann hat man ja ebenfalls ein Frameset). Nach ein paar Klicks druecke ich nochmals Reload und lande nun auf den gleichen Seiten wie vor dem Reload. Also genau so, wie man es erwarten wuerde.

    Hier greift der Browser auch nochmal auf den Webserver zu.
    Dieser liefert jetzt aber einen 304'er Code (NOT MODIFIED) zurueck.
    Der Browser stellt die Frames daraufhin korrekt dar.
    Touche ich nun die Framset html-Datei,  dann uebertraegt der Server diese natuerlich mit dem 200'er Code.
    In diesem Fall werden die Frames so geladen, wie sie im Frameset stehen.

    Ich vermute, dass mein Problem darin liegt.
    Warum wird das eine Mal ein 200'er Code und das andere Mal ein 200'er Code uebertragen?

    Wie bekomme ich meine Seiten so hin, dass sie auch ein "Not Modified" liefern?

    Gruss Raphael