Smarty局部缓存的几种方法简介


Posted in PHP onJune 17, 2014

很多时候我们在用smarty时,并不希望缓存整个页面,例如天气、股票等这类即时更新的信息。那么我们可以让其不缓存,常见的实现有如下3种方法:

1.insert 法:

Insert 函数类似于 inluce 函数,不同之处是 insert 所包含的内容不会被缓存,每次调用该模板都会重新执行该函数。比如说我们定义一个显示时间的函数:

function insert_get_current_time() {
return date("H:i:s");
} 
//然后在模板中:
{insert name="get_current_time"} 

这样每次打开页面,显示的都是即时时间,而不是缓存的。注意这里的函数名一定要以insert开头,模板中的name与之对应。如果我们的函数包含一些参数,那么我们的在模板中可以这样:

{insert name="get_current_time" lid=#banner_location_id# sid=#site_id#}
//那么Smarty 调用该函数类似insert_get_current_time(array("lid"=>"12345","sid"=>67890"));

并将返回的结果显示在调用的位置。

2.动态block 法:

在smarty代码中:

function smarty_block_nocache($param,$content,$smarty)    
{
return $content;
}
$smarty->register_block('nocache','smarty_block_nocache',false);

在模板文件中:

<{nocache}>    //这里放不需要被缓存的内容 <{/nocache}>

3.插件block法:

 这个跟block差不多,只是我们将其以插件的形式来做。在Smarty/plugins目录下建一个文件:block.nocache.php,这里命名一定要规范,否则smarty识别不了。 内容如下:

function smarty_block_nocache($param,$content,$smarty)
{
return $content;
} 

在模板中和上面一直,不需要被缓存的地方加上nocache就可以了!

PHP 相关文章推荐
利用PHP动态生成VRML网页
Oct 09 PHP
PHP中文汉字验证码
Apr 08 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
PHP的范围解析操作符(::)的含义分析说明
Jul 03 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
Dec 30 PHP
基于php上传图片重命名的6种解决方法的详细介绍
Apr 28 PHP
基于Zookeeper的使用详解
May 02 PHP
PHP上传文件时自动分配路径的方法
Jan 09 PHP
php实现批量修改文件名称的方法
Jul 23 PHP
PHP迭代器接口Iterator用法分析
Dec 28 PHP
PHP用swoole+websocket和redis实现web一对一聊天
Nov 05 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
Dec 29 PHP
smarty模板局部缓存方法使用示例
Jun 17 #PHP
CodeIgniter CLI模式简介
Jun 17 #PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 #PHP
CI框架自动加载session出现报错的解决办法
Jun 17 #PHP
Thinkphp模板中截取字符串函数简介
Jun 17 #PHP
CI框架中zip类应用示例
Jun 17 #PHP
php获取网页请求状态程序示例
Jun 17 #PHP
You might like
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
php jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
JQuery从头学起第二讲
2010/07/04 Javascript
javascript加号&quot;+&quot;的二义性说明
2013/03/04 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
轻松实现JavaScript图片切换
2016/01/12 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
js 调用百度分享功能
2017/02/27 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
python网络编程实例简析
2014/09/26 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
CSS3轻松实现圆角效果
2017/11/09 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
VC++笔试题
2014/10/13 面试题
函授毕业生的自我鉴定
2013/11/26 职场文书
药剂专业学生求职信范文
2013/12/28 职场文书
经典公益广告词
2014/03/13 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
森马旗舰店双十一营销方案
2014/09/29 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
银行员工考核评语
2014/12/31 职场文书
爱心捐款感谢信
2015/01/20 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
开学典礼观后感
2015/06/15 职场文书
《月光曲》教学反思
2016/02/16 职场文书