Herman: Alternative zu onload

Hallo,

zunächst wird mit Hilfe des Attributes onload eine Java-Script-Funktion aufgerufen. Die Java-Script-Funktion ruft eine JSP auf. Die JSP enthält keine html-Tags zur Darstellung sondern nur Java-Code. Deshalb wird die JSP-Seite mit Hilfe von self.close wieder geschlossen. Die JSP Seite hat eine Änderung vorgenommen welche von der HTML-Seite angezeigt wird. Nun zu meinem Problem:

Die Änderung die von der JSP-Seite durchgeführt wurde und von der HTML-Seite angezeigt wird ist erst dann zu sehen, nachdem ich die HTML-Seite mit Hilfe von F5 aktualisiert habe.

Gibt es eine Möglichkeit die JSP noch früher aufzurufen, so dass die Änderungen die von der JSP vorgenommen wurde schon beim ersen Laden der HTML-Seite sichtbar ist, so das ein aktualisieren mit Hilfe von F5 nicht notwendig ist?

html-Seite:

<html>
  <head>
    <script type="text/javascript">
      function test()
      {
        window.open(".../objektUndStrukturErzeugen.jsp");
      }
    </script>
  </head>
  <body onload="test()">
 </body>
</html>

JSP-Seite:

<html>
    <body onload="self.close();">
    </body>
    ...
</html>

  1. Hallo,

    Die Änderung die von der JSP-Seite durchgeführt wurde und von der HTML-Seite angezeigt wird ist erst dann zu sehen, nachdem ich die HTML-Seite mit Hilfe von F5 aktualisiert habe.

    du musst also nur verhindern, dass die *.jsp neu vom Server angefordert und nicht aus dem Cache geladen wird.

    Entweder muss der Server ein passendes Gültigkeitsdatum mitliefern (expires) oder du änderst immer die URL, indem du einem Zeitstempel oder eine Zufalllszahl anhängst

      
     window.open(".../objektUndStrukturErzeugen.jsp"+"?"+Math.random(), ... );  
    
    

    Gruß plan_B

    --
         *®*´¯`·.¸¸.·
    1. Hallo,

      ich verstehe leider nicht so richtig was du meinst. Wäre super wenn du das etwas detailierter beschreiben könntest.

      1. Hallo,

        ich verstehe leider nicht so richtig was du meinst. Wäre super wenn du das etwas detailierter beschreiben könntest.

        ich hatte dich so verstanden, das die *.jsp-Seite den aktuellsten Inhalt liefert und du dem Browser klarmachen musst, diese Resource frisch anzufordern. Eine Möglickeit ist eben, die Url zu verändern, so dass der Browser die Url nicht im Cache findet ...

        wenn dem nicht so ist, möge sich bitte jemand anderer diesem Problem widmen ...

        Gruß plan_B

        --
             *®*´¯`·.¸¸.·
  2. Yerf!

    Gibt es eine Möglichkeit die JSP noch früher aufzurufen, so dass die Änderungen die von der JSP vorgenommen wurde schon beim ersen Laden der HTML-Seite sichtbar ist, so das ein aktualisieren mit Hilfe von F5 nicht notwendig ist?

    So ohne weiteres erst mal nicht. JavaScript kommt erst zum Zuge, wenn die HTML-Seite schon beim Browser ist, dann ist es aber schon zu spät für Änderungen.

    Prinzipiell sehe ich 2 Möglichkeiten:

    a) Wo kommt die HTML-Datei her, wird die generiert (vom JSP)? Dann könnte man dort direkt die Verarbeitungsschritte der 2. JSP einbauen und bräuchte keinen 2. Request.

    b) Die JSP per AJAX aufrufen und diese gibt die Änderungen zurück, die dann mittels JavaScript in die HTML-Datei integriert werden.

    c) eigentlich keine Lösung (eher Workaround) aber ich erwähne es trotzdem: Die JSP könnte vor dem self.close() am opener einen Refresh auslösen. (Also das Neuladen automatisieren)

    Gruß,

    Harlequin

    --
    <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->