2021-07-26 21:38:51 973次浏览 1条回答 0 悬赏 10 金钱

yii2.0 缓存页面,页面分电脑和手机,如何缓存?

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

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

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',
        ],
    ],
];

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

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

yii2.0 缓存页面,同一个控制器,但是区分不同的页面模板,页面分电脑和手机,如何缓存?

最佳答案

  • yanmin 发布于 2021-09-03 14:33 举报

    在控制器使用缓存,获取控制器模型,类,方法名写入only。如果手机pc使用同样的控制器方法,就想办法区分缓存名字

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
PHP学院的中学生
副总裁

PHP学院的中学生

注册时间:2018-10-23
最后登录:2024-04-07
在线时长:168小时1分
  • 粉丝29
  • 金钱4730
  • 威望30
  • 积分6710

热门问题