一、 緩衝原理:
IE:將資源檔儲存至本地
Smarty:將緩衝儲存到伺服器
編譯 < 緩衝 < 靜態
二、 為什麼使用緩衝技術
1、提升網站訪問速度
2、減輕web伺服器壓力
3、減輕資料庫伺服器壓力
三、 設定緩衝
1、在smarty中,設定緩衝主要通過以下幾行代碼:
l $smarty->setCacheDir($cache_dir)
設定緩衝目錄
將來產生的快取檔案會自動放在這個目錄下
l $smarty->caching=true
開啟緩衝機制
只要使用想緩衝技術,必須在display方法調用之前開啟緩衝機制,(清除緩衝不要開啟)
l $smarty->cach_lifetime=3600
設定緩衝有效時間(生命週期),
預設是3600秒(一小時),可以做適當調整
2、代碼部分:
程式碼:
模板代碼:
運行以上程式之後,我們發現在目前的目錄下,自動產生兩個檔案夾:
其中templates_c和cache分別表示編譯和緩衝目錄,並且它們是自動建立的
但是強烈建議大家,不要過度依賴自動建立功能,因為在有些作業系統中,預設沒有建立許可權,所以建議我們在運行之前手動建立這兩個目錄
3、觀察這兩個檔案區別:
編譯檔案:
快取檔案:
通過觀察,我們發現,在編譯檔案中,關於模板變數的值是每次通過PHP程式動態讀取的
在快取檔案中,這兩個變數的值是直接寫到檔案中的
4、緩衝是指標對模板的緩衝
我們可以嘗試建立其它php程式,讓這些程式再次顯示上面這個模板,發現這些程式只會直接運行以上程式產生的快取檔案
5、Smarty緩衝工作原理:
6、兩個相關的屬性
$smarty->compile_check
預設值為true,表示每次執行時,都會檢查模板是否改變,如果改變,則重新讀取,再產生編譯和快取檔案。但是,一個項目上線之後,模板基本上是不會有改動的或不經常動的,每次都判斷會影響系統效能,所以在項目上線之後,建議大家關閉此選項(設定為false)。
$smarty->force_compile
預設值是false,表示每次執行時,都會檢查緩衝是否到期,如果沒有到期,則直接使用快取檔案的內容。但是,一個項目開發時,緩衝會影響程式員對程式最直接的判斷,會影響觀察最新的資料。建議大家將此選項設定為true,表示每次運行時都重建編譯和快取檔案。
四、檢查緩衝
$smarty->isCached(“tpl.tpl”)
檢查某個模板是否具有快取檔案
實際應用:
五、 清除緩衝
比如說,在一個商城系統裡,這件商品價格是1000.00,現在商城打折,打七折。如果使用緩衝,但商品價格仍然是原來的價格。這時需要我們將以前的快取檔案刪除即可。
l $smarty->clearCache(“tpl.tpl”)
清除某個模板的快取檔案
l $smarty->clearAllCache()
清除所有模板的快取檔案
一個商品資訊的改變了,需要重建該商品的快取檔案
一般情況下,修改資料,是需要重建快取檔案(要把原來的快取檔案刪除).
以上就介紹了php—Smarty-緩衝1(25),包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。