Maison >développement back-end >tutoriel php >Comprendre la différence entre ob_flush et flush en PHP

Comprendre la différence entre ob_flush et flush en PHP

青灯夜游
青灯夜游avant
2020-03-31 16:39:022945parcourir

Cet article vous présentera la différence entre ob_flush et flush. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Comprendre la différence entre ob_flush et flush en PHP

La description de ob_flush/flush dans le manuel est qu'il actualise le tampon de sortie et doit être utilisé conjointement, cela va donc semer la confusion chez de nombreuses personnes...

En fait, elles opèrent sur des objets 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 Il actualise le propre tampon de PHP

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

Sous

de

, apache module appellera indirectement le sapi de flush en appelant le pointeur de fonction membre sapi_module de flush 🎜>Actualisez le tampon de sortie de apache Bien sûr, le manuel indique également qu'il existe d'autres modules d'Apache, qui peuvent modifier le résultat de cette action..api: ap_rflushapache

Certains. Avec les modules Apache, tels que mod_gzip , il est possible d'effectuer vous-même la mise en cache des sorties, ce qui empêchera l'envoi immédiat des résultats produits par la fonction flush() au navigateur client.

Même le navigateur mettra en cache le contenu reçu avant de l'afficher. Par exemple, le navigateur Netscape met le contenu en cache jusqu'à ce qu'il reçoive une nouvelle ligne ou le début d'une balise HTML, et n'affiche pas l'intégralité du tableau tant qu'il n'a pas reçu une balise .

Certaines versions de Microsoft Internet Explorer ne commenceront à afficher la page qu'après avoir reçu 256 octets, donc des espaces supplémentaires doivent être envoyés pour permettre à ces navigateurs d'afficher le contenu de la page.

Donc, l'ordre correct d'utilisation des deux est. D'abord ob_flush, puis flush,

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

Cet article est reproduit à partir de : https://blog.csdn.net/qq_28602957/article/details/66973431

Recommandé :
Tutoriel vidéo PHP

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer