Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie die Chunked-Ausgabe von BigPipe über PHP

So implementieren Sie die Chunked-Ausgabe von BigPipe über PHP

jacklove
jackloveOriginal
2018-06-09 15:03:511817Durchsuche

Prinzip: Verwenden Sie ob_flush() und flush() , um den Inhalt des Puffers im Voraus auszugeben, und der Browser kann ihn laden Teilen Sie den Inhalt im Voraus, sodass Sie vor dem Laden nicht warten müssen, bis die gesamte Ausgabe abgeschlossen ist.

Teilen Sie den Seiteninhalt in kleine Blöcke auf, geben Sie einen und dann den nächsten aus, damit Benutzer den Seiteninhalt so früh wie möglich sehen und das Benutzererlebnis optimieren können.

Zunächst sollte der Inhalt von head geladen werden, und statische Inhalte wie CSS und Javascript sollten so früh wie möglich geladen werden. Daher sollte Flush() verwendet werden Ausgabe nach Kopf.

Beispiel: Geben Sie zuerst den statischen Kopfinhalt aus, teilen Sie dann jedes e388a4556c0f65e1904146cc1a846bee in einen Block auf und geben Sie ihn jede Sekunde aus.

<!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);
}
?>

Zu beachtende Punkte:
1. Versuchen Sie, so viele Inhalte wie möglich auszugeben.
2. Versuchen Sie, synchron zu laden.
3. Je mehr Stücke geteilt werden, desto besser. Es kommt auf den tatsächlichen Bedarf an.
4.ob_flush() und Flush() müssen gleichzeitig verwendet werden, da Flush() in einigen Fällen keine Wirkung hat.

In diesem Artikel wird erläutert, wie Sie die BigPipe-Blockausgabe über PHP implementieren. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Verwandte Einführung in die MySQL-Optimierung der Einfügeleistung

So verwenden Sie die allgemeine PHP-Anpassung Methoden

So verschlüsseln/entschlüsseln Sie Dateien mit Exklusiv-ODER (XOR) über PHP

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Chunked-Ausgabe von BigPipe über PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn