Comment implémenter la sortie fragmentée BigPipe via php

jacklove
Libérer: 2023-03-31 10:48:01
original
1827 Les gens l'ont consulté

Principe : Utilisez ob_flush() et flush() pour afficher le contenu du tampon à l'avance, et le navigateur peut le charger partie à l'avance du contenu, pas besoin d'attendre que toutes les sorties soient terminées avant de charger.

Divisez le contenu de la page en petits blocs, affichez-en un puis le suivant, afin que les utilisateurs puissent voir le contenu de la page le plus tôt possible et optimiser l'expérience utilisateur.

Tout d'abord, le contenu de head doit être chargé en premier, et le contenu statique tel que CSS et Javascript doit être chargé le plus tôt possible. Par conséquent, flush() doit être utilisé pour. sortie après tête.

Exemple : Produisez d'abord le contenu statique de la tête, puis divisez chaque

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title> Big Pipe </title>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  <style type="text/css">
  body{margin:0px; background:#CCCCCC;}
  p{text-align:center; margin:10px;}
  img{width:450px;}
  </style>
 </head>
 <?php cache_flush() ?>
 <body>  
  <p><img src="http://image.tianjimedia.com/uploadImages/2013/240/5CPOE4UZ2T40.jpg"></p>
  <?php cache_flush(); ?>
  <p><img src="http://image.tianjimedia.com/uploadImages/2013/240/6893CY9XEQD1.jpg"></p>
  <?php cache_flush(); ?>
  <p><img src="http://image.tianjimedia.com/uploadImages/2013/240/83H52SG02V32.jpg"></p>
 </body>
</html>
<?php
function cache_flush($sec=1){
    ob_flush();
    flush();
    usleep($sec*1000000);
}
?>
Copier après la connexion

Problèmes à noter :
1. Essayez d'utiliser une seule sortie pour générer autant de contenu que possible.
2. Essayez de charger de manière synchrone.
3. Plus les morceaux sont divisés, mieux cela dépend de la demande réelle.
4.ob_flush() et flush() doivent être utilisés en même temps, car flush() n'aura aucun effet dans certains cas.

Cet article explique comment implémenter la sortie du bloc BigPipe via php. Pour plus de contenu connexe, veuillez faire attention au site Web chinois de php.

Recommandations associées :

Introduction connexe à l'optimisation MySQL des performances d'insertion

Comment utiliser la personnalisation commune de PHP Méthodes

Comment crypter/déchiffrer des fichiers en utilisant le OU exclusif (XOR) via 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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal