smarty的常用方法(二)の缓存

一、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;

原文地址:https://www.cnblogs.com/hhfhmf/p/4820849.html