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 缩略图实现函数代码
Jun 23 PHP
php中判断文件存在是用file_exists还是is_file的整理
Sep 12 PHP
使用PHP接收POST数据,解析json数据
Jun 28 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
Nov 07 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 PHP
ThinkPHP的I方法使用详解
Jun 18 PHP
ThinkPHP权限认证Auth实例详解
Jul 22 PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 PHP
php恢复数组的key为数字序列的方法
Apr 28 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
详解PHP处理字符串类似indexof的方法函数
Jun 11 PHP
php图片裁剪函数
Oct 31 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动态创建Flash动画
2006/10/09 PHP
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
JS打印gridview实现原理及代码
2013/02/05 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
2017/02/14 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
vue-router传参用法详解
2019/01/19 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
python封装对象实现时间效果
2020/04/23 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
化工工艺专业求职信
2013/09/22 职场文书
酒店管理专业学生求职信
2013/09/27 职场文书
房地产开发计划书
2014/01/10 职场文书
红旗团支部事迹材料
2014/01/27 职场文书
学校搬迁方案
2014/06/15 职场文书
推广活动策划方案
2014/08/23 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
Spring Boot实现文件上传下载
2022/08/14 Java/Android