• YII http缓存


    http禁止缓存原理

    header('Expires: 0');
    header('Last-Modified: '. gmdate('D, d M Y H:i:s') . ' GMT');
    header('Cache-Control: no-store, no-cahe, must-revalidate');
    //ie专用
    header('Cache-Control: post-chedk=0, pre-check=0', false);
    //for HTTP/1.0
    header('Pragma: no-cache');

    HttpcacheController.php

    首先判断的是客户端lastModified,如果最后更新时间没有变化,就不会更新缓存,然后再判断etagSeed

    <?php
    /**
     * Created by PhpStorm.
     * Date: 2016/5/25
     * Time: 20:17
     * http 缓存
     */
    namespace frontendcontrollers;
    use yii;
    use yiiwebController;
    
    class HttpcacheController extends Controller
    {
        public function behaviors()//先于action执行,可以用来实现页面缓存
        {
            return [
                [
                    'class'=>'yiifiltersHttpCache',//整个页面缓存
                    'lastModified'=>function(){
                        return filemtime('hw.txt');
                        //return 22221231231231;//可以在每次修改数据时,记入缓存,从缓存读取
                    },
                    'etagSeed'=>function(){
                        $fp = fopen('hw.txt','r');//hw.txt在web的根目录下
                        $title = fgets($fp);//读取第一行
                        fclose($fp);
                        return $title;
                        //return 'etagseed2123123';//内容
                    },
                ]
            ];
        }
        public function actionIndex()
        {
            $content = file_get_contents('hw.txt');
            return $this->renderPartial("index",['new'=>$content]);
        }
    }

    httpcache/index.php

    <?php
    /**
     * Created by PhpStorm.
     * Date: 2016/5/25
     * Time: 20:19
     */
    ?>
    <div>
        <div>这是http缓存页面</div>
        <p><?= $new;?></p>
    </div>
  • 相关阅读:
    网络文件传输方式
    ETL利器Kettle
    oracle 字符处理
    ORACLE临时表空间
    Count(*)或者Count(1)或者Count([列]) 区别
    Oracle trunc()函数的用法
    DATE 日期格式
    oracle 异常
    物化视图
    域名和端口
  • 原文地址:https://www.cnblogs.com/isuben/p/5529834.html
Copyright © 2020-2023  润新知