Smarty数据缓存与模板缓存

本文详细介绍了Smarty模板缓存的基础概念,包括如何开启缓存、使用缓存目录,以及如何实现真正的数据缓存。此外,文章还讲解了Smarty模板中的局部缓存机制,并展示了如何为缓存添加ID号,从而实现不同ID对应不同缓存页面的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Smarty模板技术基础就是模板缓存

什么是模板缓存?

smarty会将用smarty语法编写的模板替换为php格式的以便PHP解析,实现PHP的数据与界面分离.

当我们每修改一次模板文件,相应的模板缓存都要重新生成一次.

但这仅仅是模板缓存,程序仍然需要从数据库获取数据及进行运算,与直接用PHP写出的界面无任何区别.


如何实现真正的数据缓存?

smarty支持真正的数据缓存,就是条件符合会直接给浏览器返回一个缓存过的静态文件,不会从数据库检索.

需添加如下设置:


$smarty->caching = true;//打开缓存
$smarty->cache_dir = '../cache/';//缓存目录,可自定


当我们运行程序时,我们会发现cache目录下生成一些html文件,打开可以看到都是静态HTML页面


局部缓存

insert函数默认是不缓存的.并且这个属性不能修改.
cache1.htm
{insert name="mytime"}

cache1.php
function insert_mytime(){
        return date("Y-m-d H:i:s");
}

smarty_block函数也可以实现局部缓存
{blockname}
当前时间:{$smarty.now}
{/blockname}


给缓存加上ID号,一个模板实现多个缓存

$smarty->display('模板文件',缓存id); //创建带ID的缓存
$smarty->clear_all_cache(); //清除所有缓存
$smarty->clear_cache('模板文件');//清除指定模板文件的缓存
$smarty->clear_cache('模板文件',缓存id);//清除指定id的缓存

比如可以根据ID号生成不同的缓存页面:
$id="?id=".$_GET['id'];
$smarty->display("index.tpl",$id);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值