php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Zwischenseite "Bitte warten ..." - bei großer berechnung


 
cent
04-02-2003, 18:55 
 
Hallo,
ich habe ein Formular in der der User 20 Eingaben macht. Dann startet eine ziemlich aufwendige Berechnung. Ich würde nun gerne einn zwischenstatus "Bitte kurz warten..." machen, damit der User sieht, dass gerade etwas passiert und er nicht nur eine leere weiße Seite vor sich hat und warten muss bis die berechnung die ausgabe ausspuckt.

Bisher hatte ich so etwas einfach so gelöst, dass ich eine zwischenseite mache auf der "bitte kurz warten..." steht und wenn er mit der Berechnung fertig ist springt er über meta-refresh auf die nächste seite. Das funktioniert aber leider in dieser Sache nicht, da ich erstens die 20 Eingaben des Users auf der Ausgabeseite brauche und zweitens das Ergebnis mir auch 30 Wertea ausspuckt. Und diese werte kann ich ja nicht mit dem meta-refresh auf die ausgabeseite übergeben [hoffe ich erklär das nicht zu verwirrend ;)] ... gibt es für so etwas eine andere lösung?
ich hatte vorhin das tutoris "progressclass" gelesen und hatte mich echt gefreut nun ne lösung dafür gefunden zu haben, aber da dies auf dem mac nicht funktioniert und auch nur unter explorer 5.X und netscape 6.X bringt mir das leider auch nichts :(

wie löst ihr denn so etwas?

Danke schon einmal :)

 
MoRtAlAn
04-02-2003, 18:57 
 
schau mal im Handbuch unter OutputControl nach!

gruss

 
cent
04-02-2003, 19:05 
 
Und wo finde ich das (steht nix in meinem buch hier und google hat mir auch net weitergeholfen)? Gibt es dazu beispiele?

 
MoRtAlAn
04-02-2003, 19:11 
 
http://www.php.net/manual/de/ref.outcontrol.php

 
cent
04-02-2003, 19:32 
 
Ok. Danke. Mal gucken ob ich das versteh *Seufz*

 
Titus
06-02-2003, 22:15 
 
Selbst wenn es funkioniert, bleibt die Wartemeldung auf der Seite stehen, wenn man es einfach nur mit ob macht.
Und von einem Windows-Server wird die Message vermutlich erst ausgegeben, wenn das Skript zu Ende gelaufen ist.


eine relativ einfache Server-unabhängige Lösung:

seite1:
1. Formulardaten werden empfangen und irgendwo (Datei, Datenbank, Session) zwischengespeichert.
2. Ausgabe <meta http-equiv="refresh" content="0;seite2.php"> (im HTML head)
3. Ausgabe der Wartemeldung (HTML body)

seite 2:
1. Formulardaten wieder einlesen
2. falls während der Berechnung schon was ausgegeben wird: ob_start();
3. Berechnung und eventuelle Zwischenausgaben
4. (nur nach ob_start:) ob_end_flush();
5. Ausgabe der Ergebnisse

Sobald das erste Byte an den Browser gesendet wird, verschwindet die Wartemeldung und die neue Seite erscheint.


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:19 Uhr.