单页面但缓存和单页面多缓存

1、单页面单缓存
步骤:开启缓存($smarty->caching=true|$smarty->caching=2 设置lifetime生存时间)-->设置缓存目录($smarty->cache_dir='')-->
设置缓存文件的生存时间($smarty->cache_lifetime)-->利用display()或fetch()生成缓存文件

2、单页面多缓存
为了处理同样的显示界面,不同的显示内容。内容由url参数决定。同一个模板可以生成多个缓存文件(有多少内容显示就有多少缓存文件),多个缓存文件用display(*tpl,$_GET['id']);在php中可以用is_cached判断模板是否已被缓存,is_cached(*tpl,'$_GET['id'])

3、今天老师讲了一个单页面多缓存的示例:
   从学生信息的数据库中像是出所有学生的信息,并且点击详细信息是就会将所选学生的详细信息显示出来:
   首先在一个php文件中连接数据库通过mysql_query()和mysql_fetch_assoc()获取所有学生的信息,然后建立smarty,通过display()将其显示在*tpl模板中,在php文件中利用caching=1打开缓存,这样当再次打开同样的页面时就会直接调用缓存中的地址不用再次便已载入代码-->这一部分是单页面单缓存
    当学生信息载入后点击详细信息,点击时让他跳转到一个php文件中,在跳转页面时让它传递过去一个id的参数,这是调用display(*tpl,$_GET['id']),利用is_cached(*tpl,$_GET["id"])判断是否已存在与该id相对应的缓存文件,若存在那下次在执行时就不需要在编译代码,然后再次新建一个tpl模板文件,将其载入
 
*php
<?php
include("connect_mysql.php");
include("../libs/Smarty.class.php");
$smarty=new Smarty;
$smarty->reInitSmarty("../demo/templates","../demo/templates_c","../demo/configs","../demo/cache");
$smarty->caching=1;
if(!$smarty->is_cached("stu_info.tpl",$_GET['id'])){
 
 $q="select * from stu where id='".$_GET["id"]."'";
$res=mysql_query($q);
$arr=array();

while($row=mysql_fetch_assoc($res)){
 $arr[]=$row;
 }
$smarty->assign("info",$arr);
 var_dump($arr);
 echo "没有设置缓存……";
 }
$smarty->display("stu_info.tpl",$_GET['id']);
?>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值