日期:2014-05-17  浏览次数:20501 次

关于Smarty模板的缓存问题。
我开启了缓存
require dirname(__FILE__).'/run.inc.php';
global $_tpl;
if(!$_tpl->is_cached('member.tpl',$_SERVER['REQUEST_URI'])){
$_member=new MemberAction();
$_member->action();
}
$_tpl->display('member.tpl',$_SERVER['REQUEST_URI']);
$_tpl是smarty模板,MemberAction()是控制器。简单来说是在member.php?action=showupdate里修改了文件数据,这样就跳到member.php?action=show中,但是因为缓存的关系,它直接就加载了member.php?action=show的缓存文件,在member.php?action=show中看不到数据的变化,但数据库数据时修改了的。我想知道如何及时更新数据,修改的部分不缓存。

------解决方案--------------------
smarty有个标记是不缓存的{insert}

另一种办法就是member.php?action=showupdate执行完,调用smarty的方法更新member.php?action=show的缓存