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
利用递归把多维数组转为一维数组的函数
Oct 09 PHP
DedeCms模板安装/制作概述
Mar 11 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
Jul 19 PHP
php实现图片缩放功能类
Dec 18 PHP
destoon二次开发模板及调用语法汇总
Jun 21 PHP
php随机抽奖实例分析
Mar 04 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
php源码之将图片转化为data/base64数据流实例详解
Nov 27 PHP
PHP生成随机数的方法总结
Mar 01 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 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/06/27 PHP
PHP将XML转数组过程详解
2013/11/13 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
一些常用的JS功能函数代码
2009/06/23 Javascript
javascript类继承机制的原理分析
2009/09/12 Javascript
JS setCapture 区域外事件捕捉
2010/03/18 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
ES6中的Promise代码详解
2017/10/09 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
对python 命令的-u参数详解
2018/12/03 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
什么是唯一索引
2015/07/05 面试题
公务员个人自我评价分享
2013/11/06 职场文书
大学生军训自我评价分享
2013/11/09 职场文书
元旦获奖感言
2014/03/08 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js