>  기사  >  백엔드 개발  >  PHP를 통해 BigPipe 청크 출력을 구현하는 방법

PHP를 통해 BigPipe 청크 출력을 구현하는 방법

jacklove
jacklove원래의
2018-06-09 15:03:511781검색

원리: 버퍼의 콘텐츠를 미리 출력하려면 ob_flush()flush() 를 사용하세요. 브라우저는 로드하기 전에 모든 출력이 완료될 때까지 기다리지 않고 콘텐츠의 이 부분을 조기에 로드할 수 있습니다.

페이지 콘텐츠를 작은 블록으로 나누고 한 부분을 출력한 후 다음 부분을 출력하면 사용자가 페이지 콘텐츠를 최대한 빨리 볼 수 있고 사용자 경험을 최적화할 수 있습니다.

우선 head의 내용을 먼저 로드해야 하며, CSS, javascript 등의 정적 내용은 최대한 빨리 로드해야 하므로, head 이후에 출력하려면 flash()를 사용해야 합니다.

예: 먼저 헤드 정적 콘텐츠를 출력한 다음 각 e388a4556c0f65e1904146cc1a846bee를 덩어리로 나누어 1초마다 출력합니다.

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

주의할 문제:
1. 하나의 출력을 사용하여 최대한 많은 콘텐츠를 출력해 보세요.
2. 동기적으로 로드해 보세요.
3. 덩어리가 많을수록 실제 수요에 따라 다릅니다.
4.ob_flush()와 플러시()는 동시에 사용해야 합니다. 일부 경우에는 플러시()가 효과가 없기 때문입니다.

이 글에서는 PHP를 통해 BigPipe 블록 출력을 구현하는 방법에 대해 설명합니다. 자세한 내용은 PHP 중국어 웹사이트를 참고하세요.

관련 추천:

mysql 최적화 정보 삽입 성능 관련 소개

PHP 공통 사용자 지정 방법 사용 방법

배타적 OR(XOR)을 사용하여 PHP를 통해 파일을 암호화/해독하는 방법

위 내용은 PHP를 통해 BigPipe 청크 출력을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.