首頁  >  文章  >  後端開發  >  Yii框架官方指南系列31-快取:頁面緩存

Yii框架官方指南系列31-快取:頁面緩存

黄舟
黄舟原創
2017-02-15 09:19:44965瀏覽



頁面快取指的是快取整個頁面的內容。頁面快取可以發生在不同的地方。 例如,透過選擇適當的頁面頭,客戶端的瀏覽器可能會快取網頁瀏覽有限時間。 Web應用程式本身也可以在快取中儲存網頁內容。 在本節中,我們將重點放在後一種辦法。

頁面快取可以被看作是 片段快取一個特殊情況 。 由於網頁內容往往透過應用程式佈局來生成,如果我們只是簡單的在佈局中呼叫beginCache() 和endCache(),將無法正常運作。 這是因為佈局在CController::render()方法裡的載入是在頁面內容產生之後。

如果想要快取整個頁面,我們應該跳過產生網頁內容的動作執行。我們可以使用COutputCache作為動作 過濾器來完成這項任務。下面的程式碼示範如何配置快取過濾器:


public function filters()
{
    return array(
        array(
            'COutputCache',
            'duration'=>100,
            'varyByParam'=>array('id'),
        ),
    );
}

上述過濾器配置會使過濾器適用於控制器中的所有行動。 我們可能會限制它在一個或幾個行動通過使用插件操作器。 更多的細節中可以看過濾器。

Tip: 我們可以使用COutputCache作為一個過濾器,因為它從CFilterWidget繼承過來, 這意味著它是一個工具(widget)和一個過濾器。事實上,widget的工作方式和過濾器非常相似: 工具widget (過濾器filter)是在action動作裡的內容執行前執行,在執行後結束。


以上就是Yii框架官方指南系列31——快取:頁面快取的內容,更多相關內容請關注PHPcn網(www.php..


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