• 片段缓存


    首先在controller中直接执行

    return  $this->renderPartial('index');

    然后在相应的view中的index文件中:

     1 <?php if($this->beginCache('cache_div')){?>
     2 <div id="cache_div">
     3     <div>这里待会会被缓存</div>
     4 </div>
     5 <?php
     6     $this->endCache();}
     7 ?>
     8 <div id="no_cache_div">
     9     <div>这里不会被缓存</div>
    10 </div>

    这样,在beginCache和endCache之间的代码会被缓存,而id为 no_cache_div 中的内容则不会被缓存

    我们在index中的代码进行修改为:

     1 <?php if($this->beginCache('cache_div')){?>
     2 <div id="cache_div">
     3     <div>这里待会会被缓存fefefef</div>
     4 </div>
     5 <?php
     6     $this->endCache();}
     7 ?>
     8 <div id="no_cache_div">
     9     <div>这里不会被缓存fefefef</div>
    10 </div>

    然后继续刷新页面,发现id为cache_div中的内容不会加上fefefef而id为 no_cache_div 中的内容则会加上fefefef

    关于片段缓存的设置

    1、设置缓存失效的时间

    在view里面的index文件里,beginCache的第二个参数设置duration,然后给duration设置时间

    <?php
    $duration=15;
    ?>
    
    <?php if($this->beginCache('cache_div',['duration'=>$duration])){?>
    <div id="cache_div">
        <div>这里待会会被缓存</div>
    </div>
    <?php
        $this->endCache();}
    ?>

    2、设置缓存的依赖文件

    beginCache的第二个参数设置为dependency

    <?php
    
    $dependency = [
        'class'=>'yiicachingFileDependency',
        'fileName'=>'hw.txt'
    ];
    ?>
    
    
    <?php if($this->beginCache('cache_div',['dependency'=>$dependency])){?>
    <div id="cache_div">
        <div>这里待会会被缓存</div>
    </div>
    <?php
        $this->endCache();}
    ?>

    其中hw.txt存放在web目录下,当改变该目录中的内容,则该缓存失效

    3、是否开启缓存

     1 <?php
     2 $enabled=true;
     3 ?>
     4 
     5 <?php if($this->beginCache('cache_div',['enabled'=>$enabled])){?>
     6 <div id="cache_div">
     7     <div>这里待会会被缓存defrfr</div>
     8 </div>
     9 <?php
    10     $this->endCache();}
    11 ?>

    片段缓存嵌套:

     1 <?php if($this->beginCache('cache_div',['duration'=>20])) { ?>
     2 
     3     <div id='cache_outer_div'>
     4         <div>这里是外层,待会会被缓存</div>
     5 
     6         <?php if ($this->beginCache('cache_inner_div', ['duration'=> 1])) { ?>
     7             <div id='cache_inner_div'>
     8                 这里是内层,待会会被缓存
     9             </div>
    10             <?php
    11             $this->endCache();
    12         }
    13         ?>
    14     </div>
    15     <?php
    16     $this->endCache();
    17 }
    18 ?>

    从中可以看出外层的缓存是20s后失效,但是里面的缓存是1s失效,所以在有内外缓存嵌套的时候注意失效时间

  • 相关阅读:
    ranger0.5.4-开源安装配置
    Spark Streaming 读取Kafka数据写入ES
    kettle与sqoop的比较
    spark常用算子
    eclipse快捷键
    hive相关操作
    我眼中如何成为一名合格PHP高级开发工程师
    laravel 路由404
    TP5.0 未定义变量
    公众号基本配置(token验证失败)|公众平台测试账号接口配置信息(token验证失败)
  • 原文地址:https://www.cnblogs.com/jacson/p/4760766.html
Copyright © 2020-2023  润新知