Yii2详解HTTP缓存

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010010725/article/details/52183340

概述

这里只是简单讲一下用法,如果想更详细的了解,去看 官方手册 比较好。

除了使用服务器端缓存外, Web 应用还可以利用客户端 缓存去节省相同页面内容的生成和传输时间。通过配置 yii\filters\HttpCache 过滤器,控制器操作渲染的内容就能 缓存在客户端。

示例说明

class TestController extends Controller{
    // 该方法会在其他方法之前执行
    public function behaviors()
    {
        // 声明缓存配置
        return [ // 需要注意的这里是二维数组
            [
                'class' => 'yii\filters\HttpCache', // 设置需要加载的缓存文件
                'only' => ['index'], // 设置需要缓存的控制器
                'lastModified' => function(){ // 设置 Last-Modified 头
                    return 1548922;
                },
                'etagSeed' => function (){ // 设置 ETag 头
                    return 'hello';
                }
            ]
        ];
    }
    public function actionIndex(){
        return $this->renderPartial('index');
    }
    public function actionTest(){
        echo 789;
    }
}

参数说明

  • class:定义需要加载的缓存配置文件。
  • only:定义仅仅只需要在哪个页面设置缓存。如上列举例中,仅仅只有index页面会缓存下来,其他页面则不会缓存。
  • lastModified:使用时间戳标明页面自上次客户端缓存后是否被修改过。
  • etagSeed:通过对比客户端的哈希值和服务器端生成的哈 希值,浏览器就能判断页面是否被修改过,进而决定是否应该重新传输内容。

注意

lastModifiedetagSeed 同时被设置时,lastModified 的设置可以说无效,因为会始终按照 etagSeed 的改变而改变。

展开阅读全文

没有更多推荐了,返回首页