首先在controller中直接执行
return $this->renderPartial('index');
然后在相应的view中的index文件中:
1 beginCache('cache_div')){?> 235 endCache();} 7 ?> 8这里待会会被缓存49这里不会被缓存10
这样,在beginCache和endCache之间的代码会被缓存,而id为 no_cache_div 中的内容则不会被缓存
我们在index中的代码进行修改为:
1 beginCache('cache_div')){?> 235 endCache();} 7 ?> 8这里待会会被缓存fefefef49这里不会被缓存fefefef10
然后继续刷新页面,发现id为cache_div中的内容不会加上fefefef而id为 no_cache_div 中的内容则会加上fefefef
关于片段缓存的设置
1、设置缓存失效的时间
在view里面的index文件里,beginCache的第二个参数设置duration,然后给duration设置时间
beginCache('cache_div',['duration'=>$duration])){?>endCache();}?>这里待会会被缓存
2、设置缓存的依赖文件
beginCache的第二个参数设置为dependency
'yii\caching\FileDependency', 'fileName'=>'hw.txt'];?> beginCache('cache_div',['dependency'=>$dependency])){?>endCache();}?>这里待会会被缓存
其中hw.txt存放在web目录下,当改变该目录中的内容,则该缓存失效
3、是否开启缓存
1 4 5 beginCache('cache_div',['enabled'=>$enabled])){?> 679 endCache();}11 ?>这里待会会被缓存defrfr8
片段缓存嵌套:
1 beginCache('cache_div',['duration'=>20])) { ?> 2 3415 endCache();17 }18 ?>这里是外层,待会会被缓存5 6 beginCache('cache_inner_div', ['duration'=> 1])) { ?> 78 这里是内层,待会会被缓存 910 endCache();12 }13 ?>14
从中可以看出外层的缓存是20s后失效,但是里面的缓存是1s失效,所以在有内外缓存嵌套的时候注意失效时间