$Smarty->caching = true;
设置缓存周期
$Smarty->cache_lifetime = 30;
设置缓存目测
$Smarty->cache_dir = './cache';
然后对于数据库访问的那一部分,我们首先做一次判断,是否已经对此部分进行过缓存了
if(!$Smarty->isCached('01.html')){//判断是否已经进行过缓存,如果已经进行过就不走这里,直接输出模板 $conn = mysql_connect('localhost','root','root'); mysql_query('set names utf8'); mysql_query('use market'); $rs = mysql_query('select goods_id,goods_name,shop_price,add_time from goods where goods_id = ' . $goods_id,$conn); $goods =array(); while($row = mysql_fetch_assoc($rs)){ $goods[] = $row; } echo '走了数据库'; $Smarty->assign('goods); }
$Smarty->assign('goods',$goods);这里添加了一个参数,这个参数就是从地址栏获取的,当然,在判断的时候也需要把参数添加进去判断是否已经缓存了
$Smarty->isCached('01.html',goods_id);
那么这个缓存要怎么删除呢,很简单,只需要调用
$Smarty->clearCache('01.html',$goods_id)第二个参数可选,假如不填就直接删除这个模板下面的所有缓存。
$Smarty->force_cache = true;
最后有一点注意,缓存的生命周期是指,在这个时间过了以后,再次刷新这个页面会用新的缓存代替旧的,假如不产生新的缓存,那么旧的缓存是不会自动删除的,所以在实际项目开发中,假如缓存很多的话,其实也是很影响存储的。
其实我们需要缓存的也只是很少一部分的HTML,现在很多站都使用了memcached来缓存。
希望本文所述对大家的PHP程序设计有所帮助。