牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2017-06-12 投稿人: 浏览次数:672

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

看看例子

class HelloController extends Controller{
    public function behaviors(){
        return [
            [
                "class" => "yiifiltersHttpCache",
                "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]);
    }
}

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



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。