文章出處

首先在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'=>'yii\caching\FileDependency',
    '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失效,所以在有內外緩存嵌套的時候注意失效時間


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()