Scriptstatus?

sheaven

Mitglied
Hi,

Ich möchte ein recht rechenintensives Script ausführen.
In der Zeit, wo der Server rechnet, würde ich gern den aktuellen Rechenfortschritt dem Benutzer ausgeben. (kann durchaus eine Minute dauern)
Mit Hilfe von flush() ist mir das auch gelungen und mit Javascript kann man das am Ende auch wieder ausblenden.
Blöd ist nur, dass das halt nur Text ist. Sieht also nicht sehr schön aus.
z.B.:
abgeschlossen zu ...5%...10%...15%
etc.
Ich suche nach einer Möglichkeit das Ganze grafisch zu machen.
Also mit Balken, der am Ende auch ausgeblendet werden soll.
Ich dachte da an kleine gif's als Balken oder so.

Habe aber keinen Schimmer wie ich das machen kann.

Habt ihr Ideen?

Wäre für alles dankbar.
 
Hier ein kleiner Ausschnitt wie ich das dachte:
PHP:
echo "<span id=\"test\">Auslosung abgeschlossen zu:<br><br>";

for ($i=1; $i <= $anzahl_teiln; $i++){
	$k= 0;
	$fertig = ($i/$anzahl_teiln)*100;
	if ($fertig-5 >= $prozent) {
		$prozent = $prozent + 5;
		//echo "...$prozent%";
		echo "<img src=\"images/balken.gif\">";
		flush();

Man sieht auch noch die Textausgabe.
Bei den Bildern ist das Problem, dass er zwar Platzhalter macht aber die Bilder noch nicht anzeigt.
Erst wenn alles fertig gerechnet ist und der Rest ausgeben wird.
Und da der Balken wieder verschwinden soll, also mit
PHP:
echo "</span>";
echo "<script>test.style.display='none'</script>";
hilft mir das nicht.

Oder muss ich noch was einstellen?

Bin ziemlich ratlos, nach vielen Stunden probieren. :(
 
War da nicht irgendwas, dass Echtzeit Statusanzeigen mit PHP nicht bis sehr schwierig zu realisieren sind, weil PHP Serverseitig zu Ende interpretiert wird, bevor der Code an den User geschickt wird ???
 
as wies ich etz net, abba ich kann mir gut vorstellen, dass viele Browser erst mit dem herunterladen der Bilder anfangen, wenn das Dokument (also nur der Text) fertig geladen ist?
 
Kann man das nicht vielleicht irgendwie umgehen?
Also, dass man z.B. das Bild per php direkt an den Browser sendet oder so?
 
So mit Statusanzeige und so würde des in JavaScript auch nicht gehn.
Einzigemöglichkeit ist es, irgendie "Loading..." anzuzeigen, und währenddessen in einem unsichtbaren IFrame (width=0 height=0) das Script zu laden. Bei onLoad dann witerleiten oder irgend was nderes.
 
Geht dann wohl anscheinend nicht.
Die aktuellen Prozente bekomme ich zwar auf dem Bildschirm aber leider keine schöne Grafik.

Wirklich blöd :(
 
Es geht ja nicht darum zu wissen, wann das Script fertig ist, sondern wie weit fortgeschritten. Ich habe auch mal ein Script laufen lassen das gut eine Stunde brauchte. Ich liess auch Informationen angeben. Nachdem ich es mit flush() versucht habe, wurden zwar von Zeit zu Zeit Infos ausgegeben, aber nicht regelmässig und andauernd.
 
Zurück