一、片段缓存的介绍
简单理解:把页面不经常变动的地方缓存起来,如菜单栏等等,用户再次访问时,从内存等地方取出即可
<?if($this->beginCache('in_cache')) {?>
<div id=“in_cache”>
<div>添加到缓存的块</div>
</div>
<?$this->endCache();}?>
二、片段缓存设置
- //缓存时间
<?
$time = 15;
?>
<?if($this->beginCache('in_cache',['duration' => $time])) {?>//15秒后缓存失效
<div id=“in_cache”>
<div>添加到缓存的块</div>
</div>
<?$this->endCache();}?>
- //依赖缓存
<?
$dependency = [
'class' => '\yii\caching\FileDependency',
'fileName' => 'aaa.txt'
];
?>
<?if($this->beginCache('in_cache',['dependency' => $dependency])) {?>//当aaa.txt中的内容发生变化,则缓存失效
<div id=“in_cache”>
<div>添加到缓存的块</div>
</div>
<?$this->endCache();}?>
- //缓存开关
<?
$enabled = flase;
?>
<?if($this->beginCache('in_cache',['enabled' => $enabled])) {?>//此时缓存关闭,不使用
<div id=“in_cache”>
<div>添加到缓存的块</div>
</div>
<?$this->endCache();}?>
三、片段缓存嵌套
<?if($this->beginCache('in_cache',['enabled' => $enabled])) {?>
<div id=“in_cache”>
<div>外层</div>
<?if($this->beginCache('in_cache',['enabled' => $enabled])) {?>
<div id=“in_cache”>
<div>内层</div>
</div>
<?$this->endCache();}?>
</div>
<?$this->endCache();}?>
会有问题,比如外层的时间比里层长,里层失效外层未失效的情况