Home > Backend Development > PHP Tutorial > Smarty数据缓存与模板缓存

Smarty数据缓存与模板缓存

WBOY
Release: 2016-06-20 13:00:54
Original
1244 people have browsed it

Smarty数据缓存与模板缓存

什么是模板缓存?

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

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

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

 

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

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

需添加如下设置:

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

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

局部缓存

insert函数默认是不缓存的.并且这个属性不能修改.

cache1.htm
{insert name="mytime"}

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


smarty_block函数也可以实现局部缓存

{blockname}
当前时间:{$smarty.now}
{/blockname}
Copy after login

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

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


比如可以根据ID号生成不同的缓存页面:

$id="?id=".$_GET['id'];
$smarty->display("index.tpl",$id);
Copy after login

 


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template