sleep flush Browserproblem? – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self sleep flush Browserproblem? Sat, 05 Oct 19 13:35:43 Z https://forum.selfhtml.org/self/2019/oct/05/sleep-flush-browserproblem/1758449#m1758449 https://forum.selfhtml.org/self/2019/oct/05/sleep-flush-browserproblem/1758449#m1758449 <p>Hallo,</p> <p>vor Jahren hatte ich mal ein Script geschrieben, dass eine verzögerte Darstellung im Browser erzeugte. Genauer gesagt war das eine Abfolge von Aktionen. Da ich das Script leider nicht mehr finde, wollte ich das noch mal nachbauen.</p> <pre><code class="block">echo '<h1>test1</h1>'; usleep(2000000); echo '<h1>test2</h1>'; usleep(2000000); echo '<h1>test3</h1>'; usleep(2000000); </code></pre> <p>Der gewünschte Effekt, denn ich von früher kannte, setzt aber nicht ein. Also dass die einzelnen Überschriften zeitversetzt (hintereinander) im Browser auftauchen. Jetzt frage ich mich natürlich, was ich früher wohl anders gemacht habe, denn da funktionierte das definitiv. Habe auch schon probiert auf jedes echo ein flush() folgen zu lassen, genauso wie auch anstatt usleep sleep zu nutzen, weil geht ja laut doku mittlerweile auch unter windows, aber alles ohne Erfolg. Nicht falsch verstehen, natürlich könnte ich das auch mit JS oder sonstwas machen, aber mir geht es darum zu wissen wieso es nicht mehr mit php geht, bzw. was ich vielleicht falsch mache?</p> <p>Auch <a href="https://www.w3schools.com/Php/phptryit.asp?filename=tryphp_func_misc_sleep" rel="nofollow noopener noreferrer">Beispiele im Netz</a> zeigen das gleiche Verhalten, zwar funktioniert sleep aber es kommt vorher zu keiner Ausgabe. Erst nach Abarbeitung aller Sachen alles auf einmal.</p> <p>Gruss<br> Henry</p> <div class="signature">-- <br> Meine Meinung zu DSGVO & Co:<br> „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“ </div> sleep flush Browserproblem? Sat, 05 Oct 19 14:45:03 Z https://forum.selfhtml.org/self/2019/oct/05/sleep-flush-browserproblem/1758451#m1758451 https://forum.selfhtml.org/self/2019/oct/05/sleep-flush-browserproblem/1758451#m1758451 <p>Hello,</p> <p>das liegt am <a href="https://www.php.net/manual/en/ref.outcontrol.php" rel="nofollow noopener noreferrer">Output Buffer</a>. Den musst Du nach dem flush noch gezielt leeren, oder vorher ausschalten.</p> <p>Glück Auf<br> Tom vom Berg</p> <div class="signature">-- <br> Es gibt nichts Gutes, außer man tut es!<br> Das Leben selbst ist der Sinn. </div> sleep flush Browserproblem? Sat, 05 Oct 19 14:57:27 Z https://forum.selfhtml.org/self/2019/oct/05/sleep-flush-browserproblem/1758452#m1758452 https://forum.selfhtml.org/self/2019/oct/05/sleep-flush-browserproblem/1758452#m1758452 <p>Hallo TS,</p> <blockquote> <p>das liegt am <a href="https://www.php.net/manual/en/ref.outcontrol.php" rel="nofollow noopener noreferrer">Output Buffer</a>. Den musst Du nach dem flush noch gezielt leeren, oder vorher ausschalten.</p> </blockquote> <p>neee, habe ich doch alles schon probiert. Sogar direkte PHP Einstellungen:</p> <p>ini_set('output_buffering', 'off');<br> ini_set('zlib.output_compression', false);</p> <p>Gruss<br> Henry</p> <div class="signature">-- <br> Meine Meinung zu DSGVO & Co:<br> „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“ </div> sleep flush Browserproblem? Sat, 05 Oct 19 15:50:34 Z https://forum.selfhtml.org/self/2019/oct/05/sleep-flush-browserproblem/1758454#m1758454 https://forum.selfhtml.org/self/2019/oct/05/sleep-flush-browserproblem/1758454#m1758454 <p>Hallo TS,</p> <blockquote> <p>das liegt am <a href="https://www.php.net/manual/en/ref.outcontrol.php" rel="nofollow noopener noreferrer">Output Buffer</a>. Den musst Du nach dem flush noch gezielt leeren, oder vorher ausschalten.</p> </blockquote> <p>Vielleicht hast du doch nicht ganz unrecht.</p> <p>Es funktioniert durch das Ausschalten, aber auf eine extrem unerwartete Art. Zu Beginn muss man ob_end_flush() eingeben, obwohl (und im völligen Widerspruch zum Manual <em>"...Der Ausgabepuffer muss durch ob_start() mit den PHP_OUTPUT_HANDLER_FLUSHABLE und PHP_OUTPUT_HANDLER_REMOVABLE Flags aktiviert werden. Andernfalls funktioniert ob_end_flush() nicht. ..."</em>) komplett ohne ob_start(). Ja sogar im Gegenteil, mit ob_start() funktioniert es nicht.</p> <p>Aber egal, so funktioniert es jetzt wieder wie gewollt:</p> <pre><code class="block"><?php ob_end_flush(); echo '<h1>test1</h1>'; sleep(1);flush(); echo '<h1>test2</h1>'; sleep(1);flush(); echo '<h1>test3</h1>'; sleep(1);flush(); ?> </code></pre> <p>Gruss<br> Henry</p> <div class="signature">-- <br> Meine Meinung zu DSGVO & Co:<br> „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“ </div>