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个 字节以后才开始显示该页面,所以必须发送一些额外的空格来让这 些浏览器显示页面内容。
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!