Smarty缓存技术完整的执行流程
1、1.图解示意。

2、2.使用缓存检测减少数据库的读取
缓存检测,基本语法:
• $smarty->isCached(“要判断的模板文件”)
示例代码:

3、3.为什么要清除缓存
特别说明:在以上6案例的基础上,把id更改为602,我们发现,其请求结果依然603的数据,如下图所示:

4、4.出现以上问题主要是由于受到缓存的影响,系统生成缓存文件后,如果模板没有发生改变且缓存没有过期其就会自动调用缓存文件,而不会重新生成。这就会导致我们在前台无法实时的获取最新的数据。
在Smarty中,如果遇到以上问题,我们可以使用如下方式清除缓存:
• $smarty->clearCache(“tpl.tpl”) :清除某个页面的缓存
• $smarty->clearAllCache() :清除所有页面的缓存(后台程序中的清除缓存按钮)
还要特别注意:使用清除缓存可以不需要缓存开关也是可以删除的!

5、5.局部缓存技术

6、6.
① 在php页面中实现局部不缓存
• $smarty->assign(“var”, “value”, true)
assign方法一共有3个参数,第一个参数要替换标记名称
第二个参数就是要替换的值
第三个参数,布尔类型,代表是否缓存,如为true代表不缓存

7、7.② 在模板文件中实现局部不缓存
• {$var nocache=true} :设置某个变量不缓存

8、8.• {nocache}{/nocache} :设置某些区域不缓存

9、9.单页面多缓存
• $smarty->caching=true; //开启缓存
• $smarty->display(“tpl”, $id );//display拥有第二个参数,我们可以把需要改变的变量放入第二个参数就可以实现根据不同的请求生成不同的缓存!常用于详细内容页。
示例代码:

10、10.缓存集合
• $smarty->caching=true
• $smarty->display(“tpl”, $id1.”|”.$id2)
示例代码:
