一、 快取原則:
IE:將資源檔案儲存至本地
Smarty:將快取儲存到伺服器
編譯 二、 為何使用快取技術
1、提升網站訪問速度
2、減輕網頁伺服器壓力
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教學有興趣的朋友有幫助。