fuechsin: Fortschrittsbalken

Hallo,

ich habe ein Perl Skript, welches ein HTML-Formular generiert. Auf Grund der Auswahl im Formular und durch Klicken des Submit Buttons wird ein Skript aufgerufen (die action im Formular). Dieses Skript kopiert eine Datei und anschließend wieder eine Erfolgsmeldung ausgegeben, die im Browser erscheint.

Nach dem Klick auf Submit, bleibt also das alte Bild stehen und der Benutzer weiß nicht was passiert. Nachdem der Kopiervorgang beendet ist, erscheint die Erfolgsmeldung. Cool wäre es, wenn in dieser Zeit ein Fortschritsbalken oder ein animiertes GIF angezeigt wird.

Theoretisch könnte ich das gif VOR der Ausführung des Kopiervorgangs einblenden lassen, allerdings wird dann die Erfolgsmeldung darunter angezeigt.

Hat vielleicht jemand eine Idee, Hinweis oder Tipp?

  1. Moin!

    Hat vielleicht jemand eine Idee, Hinweis oder Tipp?

    1. "Ajax"

    2. Multipart:

    <?php  
      header('Content-type: multipart/x-mixed-replace;boundary=endofsection');  
      $pmt = array("--", "\\", "|", "/" );  
      for( $i = 1; $i < 100; $i ++ ){  
          print "\n--endofsection\n";  
          print "Content-type: text/html\n\n";  
          print "<html>  
    <head><title>Counter</title></head>  
    <body>  
    <h1>".$i."% ".$pmt[$i % 4]."</h1>  
    <div style='width: ".$i."%; background-color:green'>&nbsp;</div>  
    </body>  
    </html>  
    ";  
        ob_flush();  
        flush();  
        sleep(1);  
    }  
    print "\n--endofsection\n";  
    print "Content-type: text/html\n\n";  
    print "<html>  
    <head><title>Fertig</title></head>  
    <body>  
    <h1>Fertig ...</h1>  
    <p><a href=\"".$SERVER['PHP_SELF']."\">Neustart</a></p>  
    </body>  
    </html>  
    ";  
    print "\n--endofsection--\n";  
    ?>
    

    Das musst Du nur noch für Perl und Deinen Anwendungszweck umformulieren...

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. Moin!

      Ach so:

      Hier testen.

      und

      PHP: Fortschrittsbalken mit Multipart

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix

      1. Hallo,

        interessant ist, dass mein FF da keinen Quelltext anzeigen kann.. vielleicht mal ne funktionierende Variante, den Quelltext zu verbergen?

        Mfg Hans

        1. Hi,

          interessant ist, dass mein FF da keinen Quelltext anzeigen kann..

          Meiner schon - allerdings erst, wenn die Übertragung komplett abgeschlossen ist.

          MfG ChrisB

          --
          RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        2. Moin!

          interessant ist, dass mein FF da keinen Quelltext anzeigen kann.. vielleicht mal ne funktionierende Variante, den Quelltext zu verbergen?

          Nein, "nicht wirklich".

          1. Nach dem Ende des Downloads kann man den Quelltext anzeigen, wie ChrisB fest stellte.
          2. Also dürfte die Verbindung zwischen Server und Client nicht beendet werden - das hat ganz hässliche Auswirkungen auf die Verfügbarkeit des Servers.
          3. Es gibt Hoster die aus diesem Grund jegliches Skript nach ein paar Sekunden killen.

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix

  2. Hallo,

    zu dem Vorschlag von fastix lässt sich das natürlich auch mit Flash umsetzen.

    3. UILoader

    Für den Fall, dass du Flash einsetzen möchtest noch der Hinweis, dass sich ein UILoader-Element in der Bibliothek der FLA-Datei befinden muss.
    Es reicht nicht, die Klasse zu importieren und ein Object davon zu erstellen.*

    Aber wieso weiß dein User nach einem Klick nicht was passiert?
    Normalerweise sollte er das wissen bevor er klickt. Weiß er das, warum sollte er die Wartezeit nicht in kauf nehmen wollen?
    Bei einem "normalen" HTML-Formular würde ich darauf verzichten.
    Der User hat eine Ladeanzeige in der Browserleiste.

    Grüße, Matze

    * zumindest konnte ich nicht rausgekriegen wie es ohne geht ;)

  3. Hi,

    Theoretisch könnte ich das gif VOR der Ausführung des Kopiervorgangs einblenden lassen, allerdings wird dann die Erfolgsmeldung darunter angezeigt.

    Dann machst du ersteres halt vor zweiterem wieder rückgängig ...

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?