页面缓存

页面缓存指的是在服务器端缓存整个页面的内容。
随后当同一个页面被请求时,内容将从缓存中取出,而不是重新生成。

页面缓存由 [[yii\filters\PageCache]] 类提供支持,该类是一个过滤器
它可以像这样在控制器类中使用:

  1. public function behaviors()
  2. {
  3. return [
  4. [
  5. 'class' => 'yii\filters\PageCache',
  6. 'only' => ['index'],
  7. 'duration' => 60,
  8. 'variations' => [
  9. \Yii::$app->language,
  10. ],
  11. 'dependency' => [
  12. 'class' => 'yii\caching\DbDependency',
  13. 'sql' => 'SELECT COUNT(*) FROM post',
  14. ],
  15. ],
  16. ];
  17. }

上述代码表示页面缓存只在 index 操作时启用,页面内容最多被缓存 60 秒,
会随着当前应用的语言更改而变化。
如果文章总数发生变化则缓存的页面会失效。

如你所见,页面缓存和片段缓存极其相似。
它们都支持 durationdependenciesvariationsenabled 配置选项。
它们的主要区别是页面缓存是由过滤器实现,而片段缓存则是一个小部件

你可以在使用页面缓存的同时,
使用片段缓存动态内容