分过程来说:
第一次设置缓存:
$smarty->caching = 1;
$smarty->cache_lifetime = 300; //第一次设置缓存
编译后会在cache_dir里生成一个缓存文件,这个文件里包含有此次生成缓存文件时的cache_lifetime,就是300秒;
然后修改
$smarty->caching = 2;
$smarty->cache_lifetime = 5; //第二次设置缓存
更改一些内容后再次编译,如果只看cache_lifetime,应该是5秒后更改的内容会起作用,但是事实是必须要等到300秒才行,因为caching等于2,会按照目前cache_dir里那个缓存文件内的cache_lifetime(300秒)的来计算缓存时间,而不是此次设置的5秒。直到再次更新缓存,才会把第二次设置的cache_lifetime(5秒)记录到缓存文件里去。
如果第二次设置缓存时候:
$smarty->caching = 1;
$smarty->cache_lifetime = 5; //第二次设置缓存
那么只要过5秒更改的内容会起作用。
[ 本帖最后由 xinglu1983 于 2008-6-27 21:40 编辑 ]