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

  • 相关阅读:
    uboot中setenv和saveenv分析
    DMA和通道的区别
    openwrt 切换overlay文件系统为根文件系统
    华为SDN:解决传统网络3大问题
    企业需要申请多大宽带的专线?如何节省专线费用?
    stp
    inotify文件监控
    Qt中C++与QML交互
    内核空间可以直接访问应用层空间地址
    linux 提权漏洞总结
  • 原文地址:https://www.cnblogs.com/jacson/p/4760766.html
Copyright © 2011-2022 走看看