分頁(yè)緩存(Page Caching)

2018-02-24 15:40 更新

頁(yè)面緩存

頁(yè)面緩存指的是在服務(wù)器端緩存整個(gè)頁(yè)面的內(nèi)容。隨后當(dāng)同一個(gè)頁(yè)面被請(qǐng)求時(shí),內(nèi)容將從緩存中取出,而不是重新生成。

頁(yè)面緩存由 yii\filters\PageCache 類(lèi)提供支持,該類(lèi)是一個(gè)過(guò)濾器。它可以像這樣在控制器類(lèi)中使用:

public function behaviors()
{
    return [
        [
            'class' => 'yii\filters\PageCache',
            'only' => ['index'],
            'duration' => 60,
            'variations' => [
                \Yii::$app->language,
            ],
            'dependency' => [
                'class' => 'yii\caching\DbDependency',
                'sql' => 'SELECT COUNT(*) FROM post',
            ],
        ],
    ];
}

上述代碼表示頁(yè)面緩存只在?index?操作時(shí)啟用,頁(yè)面內(nèi)容最多被緩存 60 秒,會(huì)隨著當(dāng)前應(yīng)用的語(yǔ)言更改而變化。如果文章總數(shù)發(fā)生變化則緩存的頁(yè)面會(huì)失效。

如你所見(jiàn),頁(yè)面緩存和片段緩存極其相似。它們都支持?duration,dependenciesvariations?和?enabled?配置選項(xiàng)。它們的主要區(qū)別是頁(yè)面緩存是由過(guò)濾器實(shí)現(xiàn),而片段緩存則是一個(gè)小部件。

你可以在使用頁(yè)面緩存的同時(shí),使用片段緩存動(dòng)態(tài)內(nèi)容

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)