程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php—Smarty-緩存1(25),phpsmarty-緩存25

php—Smarty-緩存1(25),phpsmarty-緩存25

編輯:關於PHP編程

php—Smarty-緩存1(25),phpsmarty-緩存25


一、            緩存原理:

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()

清除所有模板的緩存文件

一個商品信息的改變了,需要重新生成該商品的緩存文件

一般情況下,修改數據,是需要重新生成緩存文件(要把原來的緩存文件刪除).

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