php—Smarty-緩衝1(25)

來源:互聯網
上載者:User
一、 緩衝原理:

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教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.