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设计模式 Singleton(单例模式)
Jun 26 PHP
redis 队列操作的例子(php)
Apr 12 PHP
Thinkphp模板中截取字符串函数简介
Jun 17 PHP
destoon设置自定义搜索的方法
Jun 21 PHP
PHP中读取照片exif信息的方法
Aug 20 PHP
PHP两种快速排序算法实例
Feb 15 PHP
php实现字符串翻转的方法
Mar 27 PHP
PHP+swoole实现简单多人在线聊天群发
Jan 19 PHP
orm获取关联表里的属性值
Apr 17 PHP
Yii框架组件和事件行为管理详解
May 20 PHP
php实现session共享的实例方法
Sep 19 PHP
laravel 获取当前url的别名方法
Oct 11 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
如何用PHP实现插入排序?
2013/04/10 PHP
PHP防止跨域提交表单
2013/11/01 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
详谈PHP编码转换问题
2015/07/28 PHP
js indexOf()定义和用法
2012/10/21 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
深入理解JS正则表达式---分组
2016/07/18 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
python远程连接服务器MySQL数据库
2018/07/02 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
python单例设计模式实现解析
2020/01/07 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
Python里面如何拷贝一个对象
2014/02/17 面试题
协议书怎么写
2014/04/21 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
值班管理制度范本
2015/08/06 职场文书
Python中Selenium对Cookie的操作方法
2021/07/09 Python
MySQL创建管理子分区
2022/04/13 MySQL