Georg: Was passiert im Browser bei F5?

Hallo zusammen,

ich weiß, dass die im Betreff gestellte Frage sich lächerlich anhört, dennoch kapiere ich es nicht. Folgendes Problem: im Normalfall bekomme ich von meinem XMLHttpRequest-Objekt (XHRO) die HTML-Fragmente meiner Seite, die ich zu ersetzen habe (in XML-Form). Funktioniert einwandfrei! Unter gewissen Umständen jedoch, muss ich die komplette Seite neu laden, welche mir in solchen Fällen ebenfalls vom XHRO geliefert wird. Was ich dann mache ist folgendes:

document.open();
document.write(html_code_der_kompletten_seite_als_string);
document.close();

Funktioniert ebenfalls einwandfrei - alles wird richtig dargestellt und auch der Source Code ist komplett richtig. ABER JETZT KOMMTS: Wenn ich jetzt F5 drücke, wird meine komplette Seite verhauen. Irgendwie sieht es so aus als würde die im Header eingebundenen CSS- und JS-Skripte nicht mehr finden.

Kann mir das jemand erklären und mir sagen, wie ich das Problem lösen kann?

Vielen Dank!
Georg

  1. Moin moin allerseits,

    Kann mir das jemand erklären und mir sagen, wie ich das Problem lösen kann?

    Jap, dir kann geholfen werden. Ich nehme an, du nimmst irgendwas, was auf nem Gecko basiert zum Testen?
    Versuche die Verweisadressen deiner Scripte und Sheets als eindeutig als möglich abzufassen. Idealerweise absolut, aber es müsste auch relativ gehen. Ich kenne das Probelm bei durch JavaScript dynamisch generierten Seiten und Inhalten von Frames, die nach dem Aktualisieren ihre scheinbare Adresse ändern, meist auf das Root-Verzeichnis der Homepage. Der MSIE in Ehren, müsste dieses Problem nicht haben. Überprüfe nach dem Aktualisieren (F5), auf welche Adressen verwiesen wird, so wird du der Sache habhaft.

    So weit, MfGrüßen,
    Sebastian

    --
    Selfcode sh:( fo:| ch:? rl:( br:& br:] n4:# ie:| mo:} va:{ de:< zu:) fl:( ss:| ls:& js:)
    1. Hallo Sebastian,

      vielen Dank für die Antwort, aber ich blicks noch immer nicht. Aber siehe selbst:

      Jap, dir kann geholfen werden. Ich nehme an, du nimmst irgendwas, was auf nem Gecko basiert zum Testen?

      Richtig, den Firefox - was auch sonst. Der sch... IE nervt mich wie die Sau, um meinen ganzen Code dahin noch zu portieren brauch ich am Schluß bestimmt noch 2 Wochen! Aber das lass ich jetzt erstmal noch aus...

      Versuche die Verweisadressen deiner Scripte und Sheets als eindeutig als möglich abzufassen.

      Häh? Sorry, ich blicks noch immer nicht. Ich soll die Links eindeutig halten? Sind sie das nicht immer? Die ändern sich doch nicht. Bei mir sehen die vor und nach dem JS-write() so aus:

      <script type="text/javascript" src="xy.js"></script>
      <link rel="stylesheet" type="text/css" href="xy.css"/>

      Der MSIE in Ehren, müsste dieses Problem nicht haben.

      Hmmm, da funzt grad gar nichts. Das kann ich nicht mal testen...

      Überprüfe nach dem Aktualisieren (F5), auf welche Adressen verwiesen wird, so wird du der Sache habhaft.

      Und wie?

      Sorry Sebastian, dass ich so dumm frage, aber ich versteh echt fast nichts. Vielleicht findest du ja nochmal die Zeit mir zu antworten.

      Gruß,
      Georg

      1. hi,

        Versuche die Verweisadressen deiner Scripte und Sheets als eindeutig als möglich abzufassen.
        Häh? Sorry, ich blicks noch immer nicht. Ich soll die Links eindeutig halten? Sind sie das nicht immer?

        Sebastian meinte wohl, dass du absolute, oder zumindest zum Wurzelverzeichnis der Domain relative Verweise nutzen solltest, anstatt zum aktuellen Verzeichnis relative. (Obwohl ich nicht beschreien möchte, dass das was bringt - dass von ihm geschilderte Verhalten ist mir nämlich noch nicht begegnet.)

        Überprüfe nach dem Aktualisieren (F5), auf welche Adressen verwiesen wird, so wird du der Sache habhaft.
        Und wie?

        Access-Log deines lokalen Testservers?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Obwohl ich nicht beschreien möchte, dass das was bringt - dass von ihm geschilderte Verhalten ist mir nämlich noch nicht begegnet.

          Hmmm, daran liegts wohl nicht.

          Access-Log deines lokalen Testservers?

          So ähnlich hab ich das vorher auch gemacht: und zwar gebe ich in meinem  Servlet per log.info(request.getPathInfo()) die url aus. Da kommt auch immer was, nur eben nicht wenn ich F5 drücke. Kommt es etwa gar nicht erst zum Request weil davor irgendwelche JS-Fehler entstehen oder weil die Seite per JS geschrieben wurde??? Ich hab keine Ahnung und bin auch viel zu müde. Morgen wieder. Vielen Dank euch beiden.

          Georg

        2. Moin moin allerseits,

          Versuche die Verweisadressen deiner Scripte und Sheets als eindeutig als möglich abzufassen.
          Häh? Sorry, ich blicks noch immer nicht. Ich soll die Links eindeutig halten? Sind sie das nicht immer?
          Sebastian meinte wohl, dass du absolute, oder zumindest zum Wurzelverzeichnis der Domain relative Verweise nutzen solltest, anstatt zum aktuellen Verzeichnis relative. (Obwohl ich nicht beschreien möchte, dass das was bringt - dass von ihm geschilderte Verhalten ist mir nämlich noch nicht begegnet.)

          Jap, das meinte ich. Sry, habs gaga ausgedrückt ...
          Begegnet isses mir regelmäßig. Es kommt vor.

          Eine Adresse in einem Verweis wie src="datei.css", die dynamisch erzeugt wurde, wird beim Aktualisieren mit einem Gecko zu src="/datei.css". Dass heißt, erst war der Suchpfad für die Datei der Pfad der erzeugenden Datei bzw. des erzeugenden Scriptes. Beim Aktualisieren geht diese Information verloren und wird in ein root-Verzeichnis gewandelt.

          So weit, MfGrüßen,
          Sebastian

          --
          Selfcode sh:( fo:| ch:? rl:( br:& br:] n4:# ie:| mo:} va:{ de:< zu:) fl:( ss:| ls:& js:)