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的FTP学习(一)[转自奥索]
Oct 09 PHP
其他功能
Oct 09 PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 PHP
探讨PHP中OO之静态关键字以及类常量的详解
Jun 07 PHP
CodeIgniter使用phpcms模板引擎
Nov 12 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
Jul 01 PHP
CI框架简单邮件发送类实例
May 18 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
PHP获取HTTP body内容的方法
Dec 31 PHP
PHP封装的分页类与简单用法示例
Feb 25 PHP
Yii框架的路由配置方法分析
Sep 09 PHP
Laravel统一错误处理为JSON的方法介绍
Oct 18 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
mysql limit查询优化分析
2008/11/12 PHP
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
PHP实现网站访问量计数器
2017/10/27 PHP
js判断ie版本号的简单实现代码
2014/03/05 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
Javascript的比较汇总
2016/07/25 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
老生常谈Python基础之字符编码
2017/06/14 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
tensorflow之tf.record实现存浮点数数组
2020/02/17 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
售后专员岗位职责
2013/12/08 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
小学教师培训感言
2014/02/11 职场文书
商务日语专业毕业生自荐信
2014/03/27 职场文书
分公司经理任命书
2014/06/05 职场文书
售后客服个人自我评价
2014/09/14 职场文书
2014年党小组工作总结
2014/12/20 职场文书
灵山大佛导游词
2015/02/04 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python
pt-archiver 主键自增
2022/04/26 MySQL