n Smarty缓存的意义:

缓存被用来保存一个文档的输出,从而加速display()或fetch()函数的执行。如果一个函数被加进缓存,那么实际输出的内容将用缓存来代替。缓存可让事物非常快速的执行,特别是带有长计算时间的模板。一旦display()或fetch()用缓存输出,那么一个缓存文档将非常容易用几个模板文档或是配置文档来组成。

对于加了缓存的模板,缓存时间多长是很重要的。举个例子,比如站点的首页内容不是经常更改,那么对首页缓存一个小时或是更长可得到很好效果。相反,几分钟就要更新一下信息的天气地图页面,用缓存就不好了。

n 开启Smarty缓存:

在PHP文件中,当实例化smarty对象后,$smarty->caching = true(或者=1) 就是开启了缓存,$smarty->caching=2时可以自定义缓存时间。默认缓存是未开启的。

建立缓存后,display('index.tpl')函数会把模板返回原来状态〔没缓存〕,也会把输出保存到$cache_dir。 下次调用display('index.tpl'),保存的缓存会被用来代替原来的模板。

对于例如新闻单条页实现缓存,要以id作为display的第二个参数来实现。对于具有分页的列表页,也必须在display中使用第二个参数。

n 判断是否有缓存:is_cached 方法:

void is_cached (string template, [string cache_id]) 。在指定模板的缓存存在时返回真。只有在缓存设置为真时才可用。

如果is_cached返回是true,则说明页面存在缓存,直接让程序执行display,否则执行诸如数据库等的操作。

n 清除缓存:

可以清除所有的缓存,也可以清除某一个模板页面的缓存。方法分别是:

$smarty->clear_all_cache();

$smarty->clear_cache('index.tpl')。