标签:
一、smarty缓存的应用(页面缓存)
smarty缓存的用法:
1、开启
2、配置缓存的生命周期
3、判断是否缓存并是否从数据库取数据
4、输出
例如
//开启缓存
$smarty->caching=true; //设置一个缓冲的生命周期 $smarty->cache_lifetime=3600; //设置缓存目录,用于存储缓存文件 $smarty->cache_dir=‘./cache‘; if(!$smarty->isCached(‘01.html‘)){ echo ‘是否走了缓存‘; }
为了缓解数据库的压力,减少不必要的对数据库的访问,缓存是很好的解决方案
二、局部缓存
smarty在页面缓存的情况下,可以设置部分不缓存,这是比较有用的,因为页面的某部分,比如随机广告,股票信息,时间等等,
在smarty中,控制局部不缓存的方法
1、在标签中控制,该标签不缓存 例:{$time|date_format:‘%Y-%m-%d %H:%M:%S‘ nocache}
2、控制一片标签不缓存 例: {nocache}{$time|date_format:‘%Y-%m-%d %H:%M:%S‘}{/nocache}
3、在PHP中,赋值时,就控制不缓存(smarty3中新增的) 例如:$smarty->assign(‘time‘,$time,true);第三个参数是控制nocache的,为真表示不缓存
4、模板文件中
{insert name=‘xxx‘ parm1=‘v1‘ parm2=‘v2‘}
请求文件中(.php)
function insert_welcome($parm,$smarty){
echo ‘nihao‘.$parm[‘user‘].rand(1, 100);
}
原理是调用上面的返回值
三、单模板,多缓存 生成缓存模板的时候传入id或者其他值
原理:是生成缓存的时候,可以再传一个‘缓存id’。如果id不同,生成的缓存文件则不同
哪些参数要影响页面的内容,就需要把那些参数当成‘缓存id’
比如page=4&cat=3 第3栏目的第4页,
page和cat都要影响结果,这2个参数都要进缓存id才可以 memcached(缓存数据,更精细的控制缓存数据)
例:$smarty->display(‘01.html‘,$id);
四、缓存的删除
可以删除对应的id,如果什么都不写,则删除01.hmtl对应的所以模板缓存
$smarty->clearCache(‘01.html‘,$id);
五、模板调试
有时出于调试的目的,临时不让缓存,但是又不想修改主代码,可以加一个选项
$smarty->force_cache = true;
标签:
原文地址:http://www.cnblogs.com/hhfhmf/p/4820849.html