博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
片段缓存
阅读量:5307 次
发布时间:2019-06-14

本文共 1707 字,大约阅读时间需要 5 分钟。

首先在controller中直接执行

return  $this->renderPartial('index');

然后在相应的view中的index文件中:

1 
beginCache('cache_div')){?> 2
3
这里待会会被缓存
4
5
endCache();} 7 ?> 8
9
这里不会被缓存
10

这样,在beginCache和endCache之间的代码会被缓存,而id为 no_cache_div 中的内容则不会被缓存

我们在index中的代码进行修改为:

1 
beginCache('cache_div')){?> 2
3
这里待会会被缓存fefefef
4
5
endCache();} 7 ?> 8
9
这里不会被缓存fefefef
10

然后继续刷新页面,发现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])){?> 6
7
这里待会会被缓存defrfr
8
9
endCache();}11 ?>

 

片段缓存嵌套:

1 
beginCache('cache_div',['duration'=>20])) { ?> 2 3
4
这里是外层,待会会被缓存
5 6
beginCache('cache_inner_div', ['duration'=> 1])) { ?> 7
8 这里是内层,待会会被缓存 9
10
endCache();12 }13 ?>14
15
endCache();17 }18 ?>

从中可以看出外层的缓存是20s后失效,但是里面的缓存是1s失效,所以在有内外缓存嵌套的时候注意失效时间

转载于:https://www.cnblogs.com/jacson/p/4760766.html

你可能感兴趣的文章
HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
查看>>
C++期中考试
查看>>
Working with Characters and Strings(Chapter 2 of Windows Via C/C++)
查看>>
vim中文帮助教程
查看>>
Android 创建与解析XML(四)—— Pull方式
查看>>
CodeForces 411B 手速题
查看>>
同比和环比
查看>>
美国在抛弃慕课,中国却趋之若鹜
查看>>
SpringMvc拦截器运行原理。
查看>>
MySQL基础3
查看>>
逻辑斯蒂回归(Logistic Regression)
查看>>
360前端面试题 2015年 07
查看>>
移动端页面使用rem布局
查看>>
谷歌中国ICP牌照过期 高管暗示员工自谋出路...
查看>>
视口viewport
查看>>
HDU1024解题报告
查看>>
js css 实现简单的计算器
查看>>
百度是如何识别原件及伪原创文章?
查看>>
各种加解密算法比較
查看>>
ExtJs自学教程(1):一切从API開始
查看>>