CakePHP開發之視圖緩存

當對指定URL發起請求時,CakePHP首先檢查該URL是否已經被緩存.如果已被緩存,CakePHP就會繞開分發器(dispatcher.php)直接返回已經緩存起來的頁面.反之,則通過正常的機制來輸出視圖.

如果已經[b]激活Cake緩存[/b]機制,Cake會緩存輸出的頁面已備下次調用。

可以選擇緩存某些頁面,也可以標記某部分視圖不被緩存.

Cache工作設置:
默認情況下,頁面緩存機制是[b]禁用[/b]的.爲了要激活這個功能,首先要在/app/config/core.php中將[b]CACHE_CHECK的值設爲true[/b].
在希望緩存的視圖所對應的controller中包含CacheHelper:

var $helpers = array('Cache');
controller中的$cacheAction數組變量中定義了哪些視圖(view)將會被緩存.
$cacheAction包含了所有希望被緩存的action名字和對應緩存的生命週期.

class ProductsController extends AppController{
var $cacheAction = array('view/23/' => 21600, 'view/48/' => 21600,);
var $cacheAction = array('recalled/' => 46400);
}

[b]視圖中緩存標記[/b]
有時候希望頁面上的部分內容不被緩存.
將不希望緩存的內容用[b](cake:nocache)[/b]標籤包起來就可以達到部分內容不被緩存的目的.

<h5><cake:nocache>example</h5>
<h1>New Products!</h1>
<cache:nocache>
<ul>
<?php
foreach($newProducts as $product:)
?>
<li>$product['name']</li>
<?endforeach;?>
</cake:nocache>
</ul>

清空緩存
當數據庫發生變動時CakePHP會自動清空緩存.

Cake提供了[b]clearCache[/b](cache.php)函數來手動清空緩存,該函數是一個全局的函數:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章