smarty缓存
发布:smiling 来源: PHP粉丝网 添加日期:2013-11-14 20:01:36 浏览: 评论:0
一开始以为smarty只是用来做一些掩饰php代码功能,但是后来才知道还有模板缓存这个强大的功能。
什么是模板缓存呢,就是我们在从数据库里面取出一些数据输出到模板的访问的时候,每一次都对数据库进行访问,但是其实每一次的数据库访问都是相同的,假如网址的流量很大,这种重复的访问完全是没有必要的,对于数据库有很大压力。smarty就提供了缓存技术,用于解决这个问题。
首先使用smarty的缓存,我们有一些要设置的:
开启缓存
$Smarty->caching = true;
设置缓存周期
$Smarty->cache_lifetime = 30;
设置缓存目测
$Smarty->cache_dir = './cache';
然后对于数据库访问的那一部分,我们首先做一次判断,是否已经对此部分进行过缓存了
- if(!$Smarty->isCached('01.html')){//判断是否已经进行过缓存,如果已经进行过就不走这里,直接输出模板
- $conn = mysql_connect('localhost','root','root');
- mysql_query('set names utf8');
- mysql_query('use market');
- $rs = mysql_query('select goods_id,goods_name,shop_price,add_time from goods where goods_id = ' . $goods_id,$conn);
- $goods =array();
- while($row = mysql_fetch_assoc($rs)){
- $goods[] = $row;
- }
- echo '走了数据库';
- $Smarty->assign('goods);
- }
但是在smarty的缓存里面还有需要注意的地方,就是假如从地址栏里面get的参数,那么就有可能影响到缓存,多个不同的参数只缓存了第一次生成的,所以这里就需要用到单模板多缓存技术,其实也很简单,只要在
$Smarty->assign('goods',$goods);这里添加了一个参数,这个参数就是从地址栏获取的,当然,在判断的时候也需要把参数添加进去判断是否已经缓存了$Smarty->isCached('01.html',goods_id);
那么这个缓存要怎么删除呢,很简单,只需要调用$Smarty->clearCache('01.html',$goods_id),第二个参数可选,假如不填就直接删除这个模板下面的所有缓存。
最后,有时候在调试程序的时候不缓存,我们也可以设置这个参数用于暂时停止缓存:$Smarty->force_cache = true;
最后有一点注意,缓存的生命周期是指,在这个时间过了以后,再次刷新这个页面会用新的缓存代替旧的,假如不产生新的缓存,那么旧的缓存是不会自动删除的,所以在实际项目开发中,假如缓存很多的话,其实也是很影响存储的。
其实我们需要缓存的也只是很少一部分的HTML,现在很多站都使用了memcached来缓存.
Tags: smarty 缓存
- 上一篇:smarty高级功能
- 下一篇:关于smarty的原理
相关文章
- ·smarty入门之优缺点 (2013-11-14)
- ·smarty高级功能(2013-11-14)
- ·关于smarty的原理 (2013-11-14)
- ·smarty的入门及简单的编码(2013-11-14)
- ·smarty post实例(2013-11-14)
- ·smarty 中include_php传递参数的问题(2013-11-28)
- ·smarty模板中使用get、post、request、cookies、session变量的方法(2020-11-20)
- ·PHP中使用smarty生成静态文件的例子(2020-11-20)
- ·php smarty模板引擎的6个小技巧(2020-11-20)
- ·PHP模板引擎Smarty的缓存使用总结(2020-11-20)
- ·在PHP模板引擎smarty生成随机数的方法和math函数详解(2020-11-20)
- ·Smarty模板学习笔记之Smarty简介(2020-12-25)
- ·模板引擎smarty工作原理以及使用示例(2021-01-10)
- ·smarty模板局部缓存方法使用示例(2021-02-21)
- ·Smarty局部缓存的几种方法简介(2021-02-21)
- ·php之Smarty模板使用方法示例详解(2021-03-17)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)