Smarty缓存的学习

来源:互联网 发布:北京哪里体检好 知乎 编辑:程序博客网 时间:2024/05/19 22:44

今天学习了Smarty的缓存,小结如下:

缓存:

1)  提高访问效率高:使用缓存;

实现类似页面静态化效果;

美工和php文件合并后的编译文件形成静态页面(减少了

从数据库获取数据信息,访问数据库的次数等);

       

2)  缓存分类

l         页面缓存

             步骤:

               在主配置文件中声明以下内容:

                 开启缓存功能 $cache=

                  设置缓存文件所在路径

                  设置缓存的时间(s)

                浏览web页面后,cache文件夹下增加一个html页面(把数据库中获取的信息保存成纯静态页面)

                在指定的缓存时间范围内浏览该web页面看到的效果保持不变;

 

l         页面多缓存

增加分页效果

               void display(string template ,string cache_id );

参数:

template:输入一个字符串类型的模板文件名称

cache_id:定义一个缓存的名称;

 

功能:在同一个模板上根据给定的缓存名称的不同生成多个缓存文件;

 

注意:

URL:web页面唯一标识,建议cache_id参数以URL为主

$_SERVER:PHP超全局变量数组

print_r($_SERVER);

  

ROOT.””.basename()””

clear_all_assign [清除所有赋值]

clear_all_cache [清除所有缓存]

clear_assign [清除赋值]

clear_cache [清除缓存]

 smarty.class.php

$caching [缓存变量] :设置是否开启缓存

0:关闭;

1:使用当前的$cache_lifetime变量判断缓存是否过期;

2:使用生成缓存时的cache_lifetime值;

 

$cache_dir [缓存目录变量] :设置缓存文件的路径

$cache_lifetime [缓存生存时间变量] :设置缓存时间(秒)

-1:强迫缓存永不过期;

0:导致缓存总是重新生成;

 

例子如下:

Php文件:b.php

<?php

include("./init.inc.php");

include("./page_class.php");

//连接数据库,检验一个模板只有一个缓存

$mysqli = new mysqli("localhost","root","123","product");

$result = $mysqli->query("select * from product");

$data = array();

while($row = $result->fetch_assoc()){

      $data[]=$row;}

//增加分页显示,检测一个模板存在多个缓存

  $page = new Page($result->num_rows,1,5);

  $tpl->assign("page",$page->getPageInfo());

  print_r($page->getPageInfo());

$tpl->assign("data",$data);

$tpl->display("a.html");

?>

模板文件:a.html

<table border=1>

   <{section loop=$data name=out}>

      <tr>

         <td><{$data[out].productID}></td>

         <td><{$data[out].name}></td>

         <td><{$data[out].price}></td>

         <td><{$data[out].description}></td>

      </tr>

          <{sectionelse}>

          该数组有问题

   <{/section}>

     <tr>

<td colspan=4>

         <{foreach from=$page item=value}>

             <{$value}>

         <{/foreach}>

</td>

</tr>

</table>

原创粉丝点击