程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 刷新PHP緩沖區為你的站點加速

刷新PHP緩沖區為你的站點加速

編輯:PHP綜合

在當前 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 文件大小和數量、浏覽器是否有本地緩存等等。因素固然有很多,不過這樣一個小小的優化,就可以顯而易見的為你的站點加速,何樂而不為呢?

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved