smarty缓存机制
来源:互联网 发布:c语言怎么控制光标 编辑:程序博客网 时间:2024/06/05 12:01
一、Smarty缓存的几种方式
缓存机制中,分为全局缓存、部分缓存、局部缓存三种方式,后面会一一讲述,下面是缓存设置前,Smarty类方法基本目录设置如下:
缓存机制中调用模板生成缓存页面,用的一个display()方法,将会在后文中用到,这里先讲解一下:
而这条语句,有一个很大的缺陷,就是一个模板即一个模板页面,只生成一个缓存,而我们知道,大多网站的多数页面后面会接一些参数或不同页面调用同一个模板,比如:
http://blog.unvs.cn/archives/2012_9.html
http://blog.unvs.cn/archives/2012_8.html
http://blog.unvs.cn/archives/2012_7.html
比方这些是调用的同一个模板生成的页面,但是又必须生成3个缓存,使用上面的语句肯定做不到,这里我们要想到一开始讲到的第二个可选参数cache_id,用一个缓存号,来区分同一个模板生成不同的页面及缓存,代码实例:
到这里,有人发现,如果我的页面不止一个参数,那是不是得全部解析出来并做为缓存号?这里有一个更好的方法,推荐给大家,也是网上大多赞同的。(其实,上面一段是’废话‘,可去掉,但为了循序渐进,更好理解而写的过渡,谅)
推荐的方法是:你可以直接将整个当前URL获取下来,作为cache_id加入缓存,这样无论它多少个参数,都不会存在同一个缓存页,
代码实例:
2、部分缓存方式
定义:意思就是,网站系统的部分页面进行缓存,而一些页面不进行缓存,比方网站的注册、登录处理页面可不进行缓存。
一种处理方式:在display()方法前或后面,将此模板缓存进行一次清除操作,注意保持两者参数必须一致;
代码实例:
另一种处理方式:原理是一样的,因为部分缓存相当于两种情况,你可以另写一个display方法进行重构,其中一个参数判断是否进行缓存,若不,则进行clear_cache()方法处理,否则进行缓存;
代码实例:
function display(
模板页面:{nocache}<{time}>{/nocache}
b、注册块方法,实现不缓存
写一个no_cached方法,并调用smarty注册块函数将方法进行注册,即可实现,直接贴实例。
代码实例:
处理页面:smarty->assign(“time”,time());
function no_cached(
return content;
}smarty->register_block("no_cached", “no_cached”, false);//注册块方法:register_block(
- Smarty缓存机制 $smarty->display(
- smarty缓存机制笔记
- Smarty缓存机制
- Smarty缓存机制
- Smarty缓存机制
- smarty缓存机制
- smarty缓存机制
- 【smarty】smarty模板引擎缓存机制
- smarty局部禁止缓存机制
- 全面剖析Smarty缓存机制
- 全面剖析Smarty缓存机制一[三种缓存方式]
- 全面剖析Smarty缓存机制[三种缓存方式]
- php+smarty ,smarty 缓存
- smarty缓存
- smarty缓存
- smarty缓存
- smarty缓存
- smarty缓存
- swap算法——c语言中值传递和引用传递的问题
- PHP框架开发教程(一) 开发前的准备
- 为什么Nginx的性能要比Apache高很多?
- SQL语句order by两个字段同时排序。
- Timer和TimeTask简介
- smarty缓存机制
- 绝对详细!Nginx基本配置、性能优化指南
- sizeof(xxx) ,IAR编译器
- JNI 数据类型及方法调用对照表
- Android多媒体开发(5)————利用Android AudioTrack播放mp3文件
- php里面合并数组array_merge和加号有什么不同
- Node的定义、Node运行的基础、Node如何实现类似于多线程的原理
- 检测二叉树是否是另一个二叉树的子树
- Android alertDialog