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 相关文章推荐
多文件上传的例子
Oct 09 PHP
php实现过滤表单提交中html标签的方法
Oct 17 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
php找出指定范围内回文数且平方根也是回文数的方法
Mar 23 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
Yii快速入门经典教程
Dec 28 PHP
详解PHP的Yii框架的运行机制及其路由功能
Mar 17 PHP
php仿微信红包分配算法的实现方法
May 13 PHP
深入剖析浏览器退出之后php还会继续执行么
May 17 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
php 中htmlentities导致中文无法查询问题
Sep 10 PHP
laravel 自定义常量的两种方案
Oct 14 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 和 MySQL 时区的一点总结
2008/03/26 PHP
PHP垃圾回收机制简单说明
2010/07/22 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
php简单生成随机数的方法
2015/07/30 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
JS实现简单表格排序操作示例
2017/10/07 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
Python实现模拟登录及表单提交的方法
2015/07/25 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
python函数的作用域及关键字详解
2019/08/20 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
python实现udp传输图片功能
2020/03/20 Python
Django返回HTML文件的实现方法
2020/09/17 Python
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
给同学的道歉信
2014/01/16 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
高中毕业生的个人自我评价
2014/02/21 职场文书
C++程序员求职信
2014/05/07 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
如何写通讯稿
2015/07/22 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
《雷雨》教学反思
2016/02/20 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
PYTHON基于Pyecharts绘制常见的直角坐标系图表
2022/04/28 Python