首頁 >後端開發 >php教程 >php—Smarty-緩存1(25)

php—Smarty-緩存1(25)

WBOY
WBOY原創
2016-08-08 09:24:381015瀏覽

一、            快取原則:

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教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn