Dirk: Ladevorgang auf Webseite anzeigen

Hallo,

mit Hilfe von "action" wird eine JSP aufgerufen. Der Ladevorgang der JSP kann einige Sekunden dauern.

Wenn die JSP verarbeitet wird möchte ich gerne "JSP wird verarbeitet" in der HTML-Seite anzeigen lassen. Nachdem die JSP verarbeitet wurde soll auf der Seite angezeigt werden "JSP ist nun fertig bearbeitet".

Wie könnte ich das umsetzen?

<form action="hier wird eine JSP aufgerufen">
</form>

  1. Lieber Dirk,

    Wenn die JSP verarbeitet wird möchte ich gerne "JSP wird verarbeitet" in der HTML-Seite anzeigen lassen. Nachdem die JSP verarbeitet wurde soll auf der Seite angezeigt werden "JSP ist nun fertig bearbeitet".

    wozu? Sind denn die diesbezüglichen Browserdarstellungen / Ladeanimationen ungeeignet/falsch/irreführend?

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Wäre es den grundsätzlich möglich?

      1. Lieber Dirk,

        Wäre es den grundsätzlich möglich?

        nicht mit Mitteln, die (X)HTML bereitstellt.

        Du bräuchtest JavaScript dafür. Wenn allerdings eine neue Seite geladen wurde, dann ist das JavaScript der Vorgängerseite komplett weg, sodass Du einen Mechanismus bräuchtest, der auf der neuen Seite feststellt, dass auf der alten Seite eine Lade-Melgung ausgegeben wurde, und dass die neue Seite nun diese Lademeldung quasi fortführen müsste.

        Man kann das sicherlich auch serverseitig steuern. Aber nochmal: Wozu?

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. -Auf der Webseite ist ein Eingabeformular.
          -Der Nutzer macht die Eingaben
          -Der Nutzer schickt das Forumlar ab (ein Servlet wird aufgerufen)
          -das Servlet macht etwas im Hintergrund
          -der Nutzer soll merken das sich etwas tut
          -deshalb soll während der Zeit wenn das Servlet ausgeführt wird, auf der Webseite eingeblendet werden "das Servlet wird verarbeitet"

          Ist das so abwegig?

          1. Moin Moin!

            -Der Nutzer schickt das Forumlar ab (ein Servlet wird aufgerufen)
            -das Servlet macht etwas im Hintergrund
            -der Nutzer soll merken das sich etwas tut
            -deshalb soll während der Zeit wenn das Servlet ausgeführt wird, auf der Webseite eingeblendet werden "das Servlet wird verarbeitet"

            Ist das so abwegig?

            Nein, deswegen animieren unter anderem IE, Netscape, Mozilla, Firefox, und Safari ein kleines Logo oben rechts, Opera blendet einen Fortschrittsbalken ein.

            Wenn Du Deine Benutzer für zu beschränkt hälst, das zu erkennen, könntest Du unmittelbar vor dem Absenden des Formulars bzw. vor der Verarbeitung des Links einen Layer über die Seite legen, der eine solche Nachricht anzeigt, wahlweise noch mit einem häßlich flimmernden GIF, das weitere Aktivität vortäuscht. Mit dem Laden der neuen Seite wird das ganze Gerümpel dann ersetzt.

            Alexander

            --
            Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
            1. Kannst du mir ein kleines Codebeispiel geben. Das wäre sehr nett.

              1. Mahlzeit,

                Kannst du mir ein kleines Codebeispiel geben. Das wäre sehr nett.

                <script type="text/javascript">  
                  
                [code lang=javascript]function krasse_animation()  
                {  
                  blende_hochwichtige_information_ein();  
                  animiere_1000_unwichtige_GIFs();  
                  taeusche_geschaeftigkeit_vor();  
                }
                

                </script>

                <form [...] onsubmit="krasse_animation();">
                [...]
                </form>[/code]

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        2. Moin!

          Wäre es den grundsätzlich möglich?

          nicht mit Mitteln, die (X)HTML bereitstellt.

          XHTML nicht, aber das HTTP-Protokoll kann es. Das Geheimnis heisst Server-Push.

          #!/usr/bin/perl -w  
              ######################################################################  
              # Michael Schilli, 1998 (mschilli@perlmeister.com)  
              # angepasst von Jörg Reinholz  
              ######################################################################  
            
              use CGI qw/:standard/;  
            
              $| = 1;  
            
              $separator = "DerEindeutigeTrenner";  
            
              print header(-type => "multipart/x-mixed-replace;boundary=$separator");  
            
              print "--$separator\n";                      # Erster Trenner  
            
              print header(-type => 'text/html'), "\n";    # Teil-Dokument  
              print "<html><head><title>Bitte warten...</title></head><body>";  
              print "<h1>Bitte warten...</h1>";  
              print "<img src='warten.gif'>";  
              print "</body><html>";  
              print "--$separator\n";                      # Trenner  
            
              # Warten :)  
              sleep(2); # Statt umfangreicher Berechnungen...  
            
              print header(-type => 'text/html'), "\n";    # Teil-Dokument  
              print "<html><head><title>Nicht mehr lange...</title></head><body>";  
              print "<h1>Nicht mehr lange...</h1>";  
              print "<img src='warten.gif'>";  
              print "</body><html>";  
              print "--$separator\n";                      # Trenner  
            
              sleep(1); # Statt umfangreicher Berechnungen...  
            
              print header(-type => 'text/html'), "\n";    # Teil-Dokument  
              print "<html><head><title>Fertig!</title></head><body>";  
              print "<h1>Fertig!</h1>";  
              print "<img src='fertig.gif'>";  
              print "</body><html>";  
              print "--$separator--\n";                    # End-Header  
          
          

          (Meine Versuche, dies mit PHP nachzumachen, scheiterten am Puffer...)

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
          1. Moin Moin!

            Wäre es den grundsätzlich möglich?

            nicht mit Mitteln, die (X)HTML bereitstellt.

            XHTML nicht, aber das HTTP-Protokoll kann es. Das Geheimnis heisst Server-Push.

            Mir spukt im Kopf rum, dass nicht jeder Browser mit Server-Push klarkommt. Irgendwann in grauer Vorzeit konnte das eigentlich nur der NN4, der damalige IE definitiv nicht. Und aus reiner Traditionspflege wird es heute mit Mozilla und IE wohl ähnlich aussehen, der Rest der Browser-Welt wird es wohl ausnahmsweise eher mit dem IE halten, denn Server-Push hat sich nie ernsthaft durchgesetzt.

            Siehe auch http://search.cpan.org/~lds/CGI.pm-3.33/CGI.pm#Server_Push und http://search.cpan.org/~lds/CGI.pm-3.33/CGI/Push.pm

            Alexander

            --
            Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    2. Ich will das JSP durch ein Servlet ersetzen. Demnach sehe ich auf Browserebene nichtmehr das es geladen wird.