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 和 MySQL 基础教程(三)
Oct 09 PHP
php 远程图片保存到本地的函数类
Dec 08 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
PHP将HTML转换成文本的实现代码
Jan 21 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
php读取文件内容到数组的方法
Mar 16 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
基于laravel制作APP接口(API)
Mar 15 PHP
PHP获取不了React Native Fecth参数的解决办法
Aug 26 PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
Aug 11 PHP
PHP排序二叉树基本功能实现方法示例
May 26 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 class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
Chrome Web App开发小结
2014/09/04 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
javascript模拟订火车票和退票示例
2014/04/24 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
2015/03/04 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
Python遍历zip文件输出名称时出现乱码问题的解决方法
2015/04/08 Python
Python入门教程之运算符与控制流
2016/08/17 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
python微信公众号之关键词自动回复
2018/06/15 Python
Python 中的lambda函数介绍
2018/10/10 Python
python实现抽奖小程序
2020/04/15 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
Python math库 ln(x)运算的实现及原理
2019/07/17 Python
Python decimal模块使用方法详解
2020/06/08 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
Python同时处理多个异常的方法
2020/07/28 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
Oracle快照(snapshot)
2015/03/13 面试题
个人找工作的自我评价
2013/10/17 职场文书
高中军训第一天感言
2014/03/06 职场文书
教师师德表现自我评价
2015/03/05 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
体育教师研修感悟
2015/11/18 职场文书
vue 实现弹窗关闭后刷新效果
2022/04/08 Vue.js