Maison  >  Article  >  développement back-end  >  Compréhension approfondie de la différence entre ob_flush et flush en php

Compréhension approfondie de la différence entre ob_flush et flush en php

黄舟
黄舟original
2017-08-10 11:20:591511parcourir


La description de ob_flush/flush dans le manuel est qu'il actualise le tampon de sortie et doit être utilisé conjointement, donc cela confond beaucoup de gens...

En fait, les deux objets d'opération sont différents. Dans certains cas, flush ne fait rien du tout.

la série de fonctions ob_* exploite le tampon de sortie de PHP lui-même

Donc, ob_flush actualise PHP. Son propre tampon.

Et flush, à proprement parler, cela n'a d'effet réel que lorsque PHP est installé en tant que module Apache (gestionnaire ou filtre). Il actualise le tampon du serveur Web (peut être considéré spécifiquement comme Apache). 🎜>

Sous

de apache module, sapi sera actualisé en appelant le pointeur de fonction membre flush de sapi_module, appelant indirectement le flush de apache api: ap_rflush buffer, bien sûr, le manuel indique également qu'il existe d'autres modules d'Apache qui peuvent modifier le résultat de cette action.apache

有些Apache的模块,比如mod_gzip,可能自己进行输出缓存,
这将导致flush()函数产生的结果不会立即被发送到客户端浏览器。 

甚至浏览器也会在显示之前,缓存接收到的内容。例如 Netscape
浏览器会在接受到换行或 html 标记的开头之前缓存内容,并且在
接受到 </table> 标记之前,不会显示出整个表格。 

一些版本的 Microsoft Internet Explorer 只有当接受到的256个
字节以后才开始显示该页面,所以必须发送一些额外的空格来让这
些浏览器显示页面内容。
Donc, l'ordre correct pour utiliser les deux est d'abord ob_flush, puis flush,

Bien sûr, sous d'autres sapi, vous ne pouvez pas appeler flush, mais afin d'assurer la portabilité de votre code, il est recommandé de l'utiliser ensemble.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn