YII2框架学习 高效篇(四) http缓存

本文介绍如何使用YII框架实现HTTP缓存,通过设置etag和lastModified来减轻服务器负担,提高用户体验。示例代码展示了如何根据文件的特征码和修改时间来更新缓存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面学习了几种YII框架里面的缓存,今天继续新的学习。当用户在较短时间内多次通过浏览器向服务器发送数据请求时(比如抢票,抢购),如果服务器每次都完整回复的话,势必影响服务器的性能。为了应对这种情况,YII框架提供了http缓存的解决方案。大致过程就是,服务器向浏览器发送数据时,附上该数据的特征码(etag)或者时间(lastModified),在浏览器下次向服务器发送改请求时,附上这段信息。如果检测到上次发送的数据并没有变化的话,就让浏览器读取上次请求的缓存数据就可以了。

看看例子

class HelloController extends Controller{
    public function behaviors(){
        return [
            [
                'class' => 'yii\filters\HttpCache',
                'lastModified' => function(){
                    return filemtime('hw.txt');//取文件修改时间
                    //return 1432817568;//时间戳
                },
                'etagSeed'=>function(){
                    $fp = fopen('hw.txt','r');
                    $title = fgets($fp);
                    fclose('hw.txt');
                    return  $title;//取第一行为特征
                    //return 'asq1a';
                }
            ]
        ];
    }

    public function actionAbout(){
        $content = file_get_contents('hw.txt');
        return $this->renderPartial('about',['new'=>$content]);
    }
}

感觉比较简单,不对代码详述了,感觉取第一行为特征码不好,回头找找好方法



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值