zoukankan      html  css  js  c++  java
  • 片段缓存

    首先在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失效,所以在有内外缓存嵌套的时候注意失效时间

  • 相关阅读:
    ConcurrentHashMap的使用和原理
    记录下项目中常用到的JavaScript/JQuery代码一(大量实例)
    layer ui插件显示tips时,修改字体颜色
    flash上传文件,如何解决跨域问题
    ubuntu下的mv命令
    Semantic 3D
    shellnet运行train_val_seg.py
    Tensorflow的不足之处
    用pip命令把python包安装到指定目录
    ubuntu建立文件或者文件夹软链接
  • 原文地址:https://www.cnblogs.com/jacson/p/4760766.html
Copyright © 2011-2022 走看看