在當前 PHP 版本的默認配置下,“輸出緩沖(Output Buffering)”是被打開的。舊版本則不是這樣,在舊版本的 PHP 中,字符串在每次被輸出的時候(通過 echo 或 print 函數),都會觸發一次發送到客戶端瀏覽器的動作。
“輸出緩沖”的引入,使得這一過程更加快速、更加高效。緩沖區實際上是在內存中開辟了一塊區域,可以認為是內存中的一個大的字符串。當程序中有字符要輸出的時候,會把要輸出的內容附加到該緩沖區中,用來替代舊版本 PHP 中每次都直接輸出到瀏覽器的方式。當緩沖區被“刷新”的時候,再統一輸入到用戶瀏覽器。以下幾種情況下,會引起緩沖區的“刷新”操作:
1、PHP 程序執行完畢;
2、緩存區的大小超過了 php.ini 配置文件中設置的 output_buffering 值;
3、flush() 或者 ob_flush() 函數被調用的時候。
在實際的產品環境下,我們可以通過在 head 標簽后馬上刷新 PHP 的緩沖區,來達到加速你的站點的目的,示例代碼如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8" />
- <title>Buffer flushing in action</title>
- <link rel="stylesheet" type="text/css" href="styles.css" />
- <link rel="shortcut icon" href="favicon.ico" />
- </head>
- <?php
- // 這里強制刷新緩沖區
- flush();
- ?>
- <body>
- ...
新聞熱點
疑難解答