<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Hier sind einige Dinge, die nicht mit dem Inhalt des Artikels zusammenhängen PHP Code</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Initialisieren Sie die Umgebung...\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Der Artikel beginnt</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
<h1>verwenden </span><span><span class="hljs-title function_ invoke__">flush</span></span><span>() Nicht effektiv?Wahrscheinlich deine Web Es gibt ein Problem mit dem Server -Setup</h1>
<p>existieren PHP In der Entwicklung,`</span><span><span class="hljs-title function_ invoke__">flush</span></span><span>()` 函数常被verwenden来立即将输出发送到客户端,Anstatt zu warten, bis das Skript ausgeführt wird, bevor es einheitlich ausgibt。它existieren实现长时间运行的任务、Echtzeit-Protokollanzeige、或者进度条更新时非常有verwenden。Jedoch,Viele Entwickler werden auf ein Problem stoßen:明明调verwenden了 <code></span><span><span class="hljs-title function_ invoke__">flush</span></span><span>()Auch wenn die PHP -Ausgabe gespült wurde, können Webserver (wie Apache, Nginx) die Ausgabe weiterhin zwischenspeichern, bis der Puffer voll ist oder das Skript vorbei ist. Gemeinsame Situationen:
Einige Browser warten auf eine bestimmte Datenmenge, bevor sie die Seite rendern, insbesondere wenn die Ausgabe sehr klein ist. Häufige Praktiken:
<span><span><?php</span></span><span>
</span><span><span>// PHP -Ausgangspufferung deaktivieren</span></span><span>
</span><span><span>while</span></span> <span>(</span> <span><span class="function_ invoke__">ob_get_level</span></span> <span>()></span> <span><span>0</span></span> <span>) {
</span><span><span class="function_ invoke__">ob_end_flush</span></span> <span>();
}
</span><span><span>Echo</span></span><span> </span><span><span class="function_ invoke__">str_repeat</span></span> <span>(</span> <span><span>""</span></span> <span>,</span> <span><span>1024</span></span> <span>);</span> <span><span>// Senden Sie genügend Daten, um das Browser -Rendering auszulösen</span></span><span>
</span><span><span>für</span></span> <span>(</span> <span><span>$ i</span></span> <span>=</span> <span><span>1</span></span> <span>;</span> <span><span>$ i</span></span> <span><=</span> <span><span>5</span></span> <span>;</span> <span><span>$ i</span></span> <span>++) {
</span><span><span>Echo</span></span><span> </span><span><span>"Verarbeitungsschritt <span>$ ich</span></span></span> <span>...<br> \N";
</span><span><span class="function_ invoke__">Flush</span></span> <span>();
</span><span><span class="function_ invoke__">Schlaf</span></span> <span>(</span> <span><span>1</span></span> <span>);
}
</span><span><span>?></span></span><span>
</span></span><p>Mit der obigen Methode können Sie sicherstellen, dass <span class="fun">Flush ()</span> in den meisten Fällen normalerweise wirksam werden kann. Bitte denken Sie jedoch daran, dass die Ausgabelatenz das Ergebnis des kombinierten Einflusses mehrerer Links von PHP, Webserver und Browser sein kann und überprüft werden muss.</p> <span><span><?php</span></span><span>
</span><span><span>// Das Ende des Artikels hängt das Ende des Inhalts nicht mit dem Inhalt zusammen</span></span><span>
</span><span><span>Echo</span></span><span> </span><span><span>"Der Artikel ist geladen. \ N"</span></span> <span>;</span> <span><span>?></span></span><span>
</span></span></div></div>