重新整理PHP緩衝區為你的網站加速_php技巧

來源:互聯網
上載者:User

在當前 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> ... 

接下來來解釋上述代碼的作用:
當瀏覽器接收到頁面 head 部分的代碼的時候,就可以開始下載 head 段中的包括的資源了,類似 CSS 檔案、網站收藏表徵圖(Favicon)等。這些內容的下載可以與瀏覽器接受 body 段的內容時的時間同步進行。
具體能加速多少,需要因地制宜。這取決於很多客觀條件,包括服務端的響應速度、你的頁面大小、你的 CSS 檔案大小和數量、瀏覽器是否有本機快取等等。因素固然有很多,不過這樣一個小小的最佳化,就可以顯而易見的為你的網站加速,何樂而不為呢?

我很希望各位把這個小技巧運用在自己網站上,並跟蹤所產生的實際效果。期待大家的反饋。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.