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.ini中的php-5.2.0配置指令详解
Mar 27 PHP
php调用mysql数据 dbclass类
May 07 PHP
php采集文章中的图片获取替换到本地(实现代码)
Jul 08 PHP
php实现遍历目录并删除指定文件中指定内容
Jan 21 PHP
Yii实现自动加载类地图的方法
Apr 01 PHP
php获取网页上所有链接的方法
Apr 03 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
PHP 错误处理机制
Jul 06 PHP
一个PHP实现的轻量级简单爬虫
Jul 08 PHP
服务器迁移php版本不同可能诱发的问题
Dec 22 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
Oct 15 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
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
简单了解JavaScript中常见的反模式
2019/06/21 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
Python3.6简单反射操作示例
2018/06/14 Python
python保存数据到本地文件的方法
2018/06/23 Python
python的re模块使用方法详解
2019/07/26 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
季度思想汇报
2014/01/01 职场文书
仓库规划计划书
2014/04/28 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
客户付款通知书
2015/04/23 职场文书
cf战队宣传语
2015/07/13 职场文书
运动会新闻报道稿
2015/07/22 职场文书
二胎满月酒致辞
2015/07/29 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书
python状态机transitions库详解
2021/06/02 Python
用Python爬取某乎手机APP数据
2021/06/15 Python
swagger如何返回map字段注释
2021/07/03 Java/Android
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫