Heim > Artikel > Backend-Entwicklung > Was ist der Unterschied zwischen ob_flush und Flush?
Die Beschreibung von ob_flush/flush im Handbuch lautet, dass beide den Ausgabepuffer aktualisieren und zusammen verwendet werden müssen, was bei vielen Menschen zu Verwirrung führen wird ...
Tatsächlich handelt es sich bei der Operation um Objekte In einigen Fällen führt Flush überhaupt nichts aus.
Die ob_*-Funktionsreihe betreibt den Ausgabepuffer von PHP selbst.
Ob_flush aktualisiert also den Puffer von PHP selbst.
Genau genommen hat Flush nur dann eine tatsächliche Wirkung, wenn PHP als Apache-Modul (Handler oder Filter) installiert ist. Es aktualisiert den Puffer des Webservers (der speziell als Apache betrachtet werden kann).
Unter apache module
s sapi
ruft flush
indirekt sapi_module
s flush
auf, um den Ausgabepuffer von apache
zu aktualisieren, indem es das api: ap_rflush
-Mitglied von apache
aufruft Funktionszeiger. Natürlich steht im Handbuch auch, dass es einige andere Module von Apache gibt, die das Ergebnis dieser Aktion ändern können. Daher ist die richtige Reihenfolge, um die beiden zu verwenden Flush,
有些Apache的模块,比如mod_gzip,可能自己进行输出缓存, 这将导致flush()函数产生的结果不会立即被发送到客户端浏览器。 甚至浏览器也会在显示之前,缓存接收到的内容。例如 Netscape 浏览器会在接受到换行或 html 标记的开头之前缓存内容,并且在 接受到 </table> 标记之前,不会显示出整个表格。 一些版本的 Microsoft Internet Explorer 只有当接受到的256个 字节以后才开始显示该页面,所以必须发送一些额外的空格来让这 些浏览器显示页面内容。Natürlich können Sie Flush nicht unter anderen Sapi aufrufen, aber um die Portabilität Ihres Codes sicherzustellen, wird empfohlen, ihn zusammen zu verwenden
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen ob_flush und Flush?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!