2017-08-01 16 views
0

Ich habe großes Problem, becouse ich alles getestet es funktioniert zu machen, but`s nicht - noch :)Fortschrittsbalken nicht bündig Arbeits

i for-Schleife einfach bekam und es ist ein Stern, Ende, bündig innen, aber immer noch mein Browser alle Ausgaben an der Last und der Schleife, und ich nahm für diese Frage einfachen Beispiel:

<?php 

if (ob_get_level() == 0) ob_start(); 
for ($i = 0; $i<10; $i++){ 

    echo "<br> Line to show."; 
    echo str_pad('',4096)."\n";  

    ob_flush(); 
    flush(); 
    sleep(2); 
} 

echo "Done."; 

ob_end_flush(); 
?>        

ai`vd Setup alles über outpuuting_bufforing, zlib, gzib und anderes all. Exakt in Skripten, Skript, Datei, sogar in php.ini, Apache. Ich habe einen dedizierten Server, damit ich konfigurieren kann, was ich brauche. Kann mir jemand1 sagen, was ich noch versuchen kann? Ofc gibt es keinen Fehler in einer Protokolldatei.

Danke für den Rat!

Antwort

0

Die Kommentare in der offiziellen PHP-Dokumentation für ob_flush() erwähnen, dass die meisten Browser einen Alles-oder-Nichts-Ansatz zum Laden von Inhalten haben. Daher wird der Browser nichts anzeigen, bis die ganze Seite geladen ist.

Siehe http://php.net/manual/de/function.ob-flush.php#109699

Dies bedeutet, dass die Ausgabe an den Browser Spülung wird für Sie nicht funktionieren.

Die Alternative wäre, die anfängliche Anfrage über AJAX zu starten und dann eine zweite Anfrage zu verwenden, um Informationen über den aktuellen Fortschritt bereitzustellen.

+0

so besser ist das tun alle meine Skripte usw. in Ajax und es wird einfacher und funktioniert gut ... – CommanderSpock