Bitte Warten Fenster -oder- zweimal senden?

finshu

Mitglied
Hallo zusammen,

mein Grundproblem ist:

Ich möchte während ein vom User angestoßenes PHP-Script seine Aktion ausführt, das eine Art "Bitte Warten" dem User im Browser angezeigt wird!

Zum Hintergrund für das Problem und bevor sich die Diskussionen nicht um das eigentliche Grundproblem drehen, hier einige Details ...

1) Der User stößt das Script aktiv an und weiß, dass es länger dauert!
2) Das Script dauert einige Sekunden (ca. 30-90) und kann auch nicht auf ein paar Sekunden optimiert werden, da es ca. 150-300MB Daten verarbeitet!
3) Ich möchte kein Pop-Up oder zweites Browserfenster
4) Mir ist es zudem egal, ob das Sendefenster die Beschriftung in "Bitte warten" ändert, oder ob zweimal eine entsprechende Webseiten geladen wird

Ich hoffe Ihr versteht was ich meine und es kann mir jemand helfen, bzw. hat das Problem bereits lösen können! Wenn ggf. nicht in PHP dann mit JS o.ä. ?

Danke und Grüße
Finshu
 
Hi,

kann sein, dass Dir flush() weiterhilft... aber ich habe auch nur davon gehört, und kann nicht genau sagen, ob das Script danach weiter ausgeführt wird. ;)

Gruß

.
 
Geht das nicht, dass du einfach bevor das Script die lange Aktion durchführt, du einfach 'Bitte Warten' ausgibst Dann steht doch 'Bitte Warten' die ganze Zeit über da - oder?
 
finshu hat gesagt.:
Hallo Datic,

meines Wissens sendet flush() nur abschließend an den Browser! :(
Eine zweite Seite kann man damit leider nicht absenden!

Grüße Finshu
flush() sendet alles an den Brauser, was bis dahin passiert ist....man könnte die Meldung also im Fenster ausgeben, während das Skript noch rödelt.
Wenn es fertig ist, kannst du ja die Meldung per JS verstecken, oder zu ner anderen Seite weiterleiten.
 
Hallo ParadiseCity,
Hallo fatalus,

klar kann ich erst ein "Bitte Warten" ausgeben, aber was wenn das Script zuende ist, dann soll es ja verschwinden!

... oder zu ner anderen Seite weiterleiten.
... und genau das suche ich! Wie bitte geht das? Zeitgesteuert kein Problem, aber wie geht es auf Zuruf wenn das Script beendet ist?

Grüße Finshu
 
Wenn du einfach nach der Verarbeitung einen header hinhängst?
Dann bearbeitet er die Daten und leitet DANACH auf eine neue Seite weiter.

Oder?Einwände?
 
Hallo Nils,

im Moment kann ich Dir nicht ganz folgen ...
Kannst Du mir das Vorgehen näher beschreiben oder ggf. ein Beispiel geben!

Danke Finshu
 
Hi,

ich denke Nils meinte das so:

1) Meldung definieren (am besten eine ganze alleinstehende Tabelle)
2) Meldung flushen
3) 2 Sekunden anhalten (damit der flush ankommt)
4) Verarbeitung starten
5) Auf Abschlussseite weiterleiten

PHP:
header ("Location: danke_bin_fertig.php");

Schau dir auf php.net die Seite zu flush() an, es gibt da
einige Unterschiede zu IE und Netscape. Der IE zB kann nur ganze
Tabellen flushen, der Netscape zB auch <TR>.

mfg

Ultra
 
Zurück