<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="分享Smarty模板局部缓存方法使用示例" id="card1">
<p> 游客</p><p>
标题:分享Smarty模板局部缓存方法使用示例<br/>
正文:<br/>
在开启smarty缓存的情况下，第一次执行时会将其编译好的输出文件保存到cache目录中，然后在程序中通过smarty的is_cache()函数检测其 cache文件是否过期，如果过期会更新缓存，如果没有过期会自动调用cache文件，这样就省去了编译的过程。检测cache过期是看模板文件是否在指定的生命周期内是否更改，这里的更改是通过检测文件的最近修改时间实现的，不是通过检测模板文件内容。<br/>防止一个模板文件的整篇都被缓存:index.php文件:代码如下:require('smarty.class.php'); <br/>$smarty = new smarty; <br/>$smarty-&amp;gt;caching = true;<br/>function smarty_block_dynamic($param, $content, &amp;amp;$smarty) { <br/>return $content; <br/>} <br/>$smarty-&amp;gt;register_block('dynamic', 'smarty_block_dynamic', false);<br/>$smarty-&amp;gt;display('index.tpl');<br/>index.tpl:代码如下:page created: {&quot;0&quot;|date_format:&quot;%d %h:%m:%s&quot;}<br/>{dynamic}<br/>now is: {&quot;0&quot;|date_format:&quot;%d %h:%m:%s&quot;}<br/>... do other stuff ...<br/><br/>{/dynamic}当重新加载这个页面，你将会注意到这两个日期不同。一个是“动态“，一个是“静态”。你能够在{dynamic}...{/dynamic}之间作任何事情，并且保证它将不会像剩下的页面一样被缓存。<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1518&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1518&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1518&amp;Page=1">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1518">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1518">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>