원리: 버퍼의 콘텐츠를 미리 출력하려면 ob_flush() 및 flush() 를 사용하세요. 브라우저는 로드하기 전에 모든 출력이 완료될 때까지 기다리지 않고 콘텐츠의 이 부분을 조기에 로드할 수 있습니다.
페이지 콘텐츠를 작은 블록으로 나누고 한 부분을 출력한 후 다음 부분을 출력하면 사용자가 페이지 콘텐츠를 최대한 빨리 볼 수 있고 사용자 경험을 최적화할 수 있습니다.
우선 head의 내용을 먼저 로드해야 하며, CSS, javascript 등의 정적 내용은 최대한 빨리 로드해야 하므로, head 이후에 출력하려면 flash()를 사용해야 합니다.
예: 먼저 헤드 정적 콘텐츠를 출력한 다음 각 를 덩어리로 나누어 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 중국어 웹사이트를 참고하세요.
관련 추천:
배타적 OR(XOR)을 사용하여 PHP를 통해 파일을 암호화/해독하는 방법
위 내용은 PHP를 통해 BigPipe 청크 출력을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!