Heim > Artikel > Backend-Entwicklung > Vertiefendes Verständnis des Unterschieds zwischen ob_flush und Flush in PHP
Die Beschreibung von ob_flush/flush im Handbuch lautet, dass es den Ausgabepuffer aktualisiert und zusammen verwendet werden muss, was viele Leute verwirrt...
Tatsächlich sind die beiden Operationsobjekte unterschiedlich.
ob_*-Funktionsreihe betreibt also den Ausgabepuffer von PHP selbst Sein eigener Puffer.
Und Flush hat genau genommen nur dann einen tatsächlichen Effekt, wenn PHP als Apache-Modul (Handler oder Filter) installiert ist. Es aktualisiert den WebServer-Puffer (kann speziell als Apache betrachtet werden). 🎜>
Untervon
wird aktualisiert, indem der apache module
-Memberfunktionszeiger von sapi
aufgerufen wird, wodurch indirekt die Ausgabe von flush
von sapi_module
flush
aufgerufen wird buffer, im Handbuch heißt es natürlich auch, dass es einige andere Module von Apache gibt, die das Ergebnis dieser Aktion ändern können.apache
api: ap_rflush
apache
Die richtige Reihenfolge für die Verwendung der beiden ist also: dann Flush,
有些Apache的模块,比如mod_gzip,可能自己进行输出缓存, 这将导致flush()函数产生的结果不会立即被发送到客户端浏览器。 甚至浏览器也会在显示之前,缓存接收到的内容。例如 Netscape 浏览器会在接受到换行或 html 标记的开头之前缓存内容,并且在 接受到 </table> 标记之前,不会显示出整个表格。 一些版本的 Microsoft Internet Explorer 只有当接受到的256个 字节以后才开始显示该页面,所以必须发送一些额外的空格来让这 些浏览器显示页面内容。Natürlich können Sie Flush unter anderen Sapi nicht aufrufen, aber um die Portabilität Ihres Codes sicherzustellen, wird empfohlen, ihn zusammen zu verwenden.
Das obige ist der detaillierte Inhalt vonVertiefendes Verständnis des Unterschieds zwischen ob_flush und Flush in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!