谁能跟我讲下smarty缓存原理 什么时候生成 什么时候用的 看了1天的百度 解析标签是弄懂了 但缓存还是晕
- --------解决方案--------
- smarty 的缓存被设计成了后台服务形式
使用时只要打开 smarty::caching 开关即可,余下的工作都由他自动完成
至于他是如何实现的,至少在目前阶段不需要你去知道
- --------解决方案--------
- 引用 1 楼 xuzuning 的回复:
smarty 的缓存被设计成了后台服务形式
使用时只要打开 smarty::caching 开关即可,余下的工作都由他自动完成
至于他是如何实现的,至少在目前阶段不需要你去知道。。。。。。。。。这个要知道了 这样看源码轻松点 不然累死
- --------解决方案--------
- 别开玩笑了!
缓存只是附加的功能,也就十数行代码
与阅读源码无关况且你都不会用,看源码只会越看越糊涂
- --------解决方案--------
- 建议看看PHP100的视频,SMARTY这章节的,不错
- --------解决方案--------
- 引用 3 楼 xuzuning 的回复:
别开玩笑了!
缓存只是附加的功能,也就十数行代码
与阅读源码无关况且你都不会用,看源码只会越看越糊涂
引用 3 楼 xuzuning 的回复:
别开玩笑了!
缓存只是附加的功能,也就十数行代码
与阅读源码无关况且你都不会用,看源码只会越看越糊涂
.................
- --------解决方案--------
- smarty缓存应该包括三种方式吧,第一种是Insert缓存,就是一般情况下用来缓存一小段数据像日期什么的,另外就是Block缓存,用来做局部缓存,再一种就是整个页面的静态缓存。
至于实现原理的话我觉得翻看源码也不一定看的出来,因为它内部嵌套的蛮杂,我看了一天也没看出个头绪,最后只能按着自己的理解然后知晓了如何合理的运用上面的三种缓存之后就没再管过了。
另外就是如果不是Smarty3的话我个人认为Smarty缓存中存在一个Bug,我在自己的QQ空间中有记录,可惜你看不到。。。。。。
- --------解决方案--------
- 看源码只会越看越糊涂
- --------解决方案--------
- 编译的时机
用户访问的是php页面
1,当编译文件不存在的时候产生2,当文件发送改变的时候
开启缓存
$sm3->caching=true;//默认是关闭
$sm3->setCacheDir();//设置目录$sm3->cache_lifetime=1000; //默认是3600
缓存的注意事项
一个模版有且只有一个缓存文件
全局缓存一旦开启所有页面都将会缓存;
局部缓存
1,针对同模版不同内容缓存
1,针对同模版不同区域缓存缓存的注意事项
一个模版有且只有一个缓存文件
全局缓存
一旦开启所有页面都将会缓存;
局部缓存
1,针对同模版不同内容缓存
设置一个可变的cacheID
1,针对同模版不同区域缓存
如果你不想模版的变量缓存只需要{$foo nocache}
如果有大块区域不需要缓存可以设置
{nocache} code。。。。{/nocache} -
smarty缓存问题
文章来源自:IT界