smarty单模板多缓存——解决缓存后所有商品页面都一样的问题

单模板多缓存——根据id的不同,来生成各个商品的缓存页面,很好解决了当goods.php?id=N缓存后,所有的商品页面都一样的问题

单模板多缓存的原理就是生产缓存的时候,可以再传一个"缓存id",如果id不同,生产的缓存文件则不同

简单点说,你的哪些参数影响到页面的内容,就把这些参数当成“缓存id”,例如:cate=4&page=3,第四栏目的第3页,明显page和cate都影响到结果,这2个参数都要写进缓存id才可以

下面以goods_id为缓存id为例,进行单模板多缓存:(smarty的开启及配置就先略去)

// 从地址栏获取goods_id
$goods_id = $_GET['goods_id'] + 0;

// 缓存
if(!$smarty->isCached('02.html',$goods_id)) {
    $conn = mysql_connect('localhost','root','111111');
    mysql_query('set names utf8',$conn);
    mysql_query('use test',$conn);

    $sql = 'select goods_name,shop_price,click_count from goods where goods_id=' . $goods_id;
    $rs = mysql_query($sql,$conn);
    $goods = mysql_fetch_assoc($rs);
    $smarty->assign($goods);
}

$smarty->display('02.html',$goods_id);
模板该怎么写还怎么写


    

{$goods_name}

{$shop_price}

{$click_count}


好,这就是smarty的单模板多缓存!如有不妥请多多指教!

你可能感兴趣的:(Smarty)