smarty实现缓存
首先需要在mySmarty中添加配置信息,开启缓存,设置缓存文件存放目录,设置缓存时间
缓存可以实现减少访问数据库,减轻数据库压力,访问一次数据库,形成静态页面,下次直接调用这个页面,也可以用nocache标签实现局部不缓存
在mysmarty类中添加的语句
- $this->cache_dir='./cache';//缓存文件存放目录
- //开启缓存
- $this->caching=true;
- //配置缓存的生命周期
- $this->cache_lifetime=3600;//单位是秒
控制页面01.php
- <?php
- //演示缓冲
- require('../../smarty3/libs/smarty.class.php');
- require('./mySmarty.php');
- //定义方法
- function insert_welcome(){
- return 123;
- }
- //创建对象
- $smarty=new mySmarty();
- //是否开启缓存
- $arr=array();
- if(!$smarty->isCached('01.html')){
- $conn=mysql_connect('localhost','root','111111');
- mysql_query('use boolshop',$conn);//选库
- mysql_query('set names utf8',$conn);//设置编码
- $sql='select goods_id,goods_name,goods_number,shop_price from goods limit 5';
- $rs=mysql_query($sql,$conn);
- while(($row=mysql_fetch_assoc($rs))!==false){
- $arr[]=$row;
- }
- echo '我走了数据库';
- }
- //$smarty->clearCache('01.html');//强制清除缓存
- $smarty->assign('suiji',rand(),true);//如果第三个参数是true,则这个变量不缓存
- $smarty->assign('goods',$arr);
- $smarty->display('01.html');
- ?>
显示页面01.html
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>显示数据</title>
- <style type="text/css">
- {literal}
- p{
- font-size:25px;
- background:green;
- }
- {/literal}
- </style>
- </head>
- <body>
- <p>这里是一个随机数{rand()*100 nocache}添加nocache属性不缓存(局部的)<p>
- <p>这是用assign传的值{$suiji}</p>
- 用foreach遍历数组<br/>
- {foreach from=$goods key='key' item='v'}
- <p>
- id号:{$v['goods_id']},商品名字:{$v['goods_name']},商品价格{$v['shop_price']},商品储存量 {$v['goods_number']}
- </p>
- {/foreach}
- <p>{insert name='welcome' nocache}</p>
- </body>
- </html>
smarty实现缓存的更多相关文章
- Smarty Caching缓存 ¥ 我要打赏
Smarty Caching缓存 https://www.yiibai.com/smarty/smarty_caching.html https://www.w3cschool.cn/smarty/s ...
- smarty之缓存机制
当smarty开启缓存时,当tpl文件内容改变时,则缓存页面会重新生成 test.php: <?php date_default_timezone_set('asia/shanghai'); h ...
- smarty之缓存笔记
smarty缓存技术 在smarty中,缓存分为:普通缓存,单模版都缓存,局部缓存. 缓存:1:首选打开缓存配置项:$smarty->caching=true; 2:缓存生命周期的配置选项:$s ...
- smarty学习——缓存
存被用来保存一个文档的输出从而加速display()或fetch()函数的执行.如果一个函数被加进缓存,那么实际输出的内容将用缓存来代替. 缓存可让事物非常快速的执行,特别是带有长计算时间的模板.一旦 ...
- smarty静态缓存
缓存能让程序访问起来更加快速,调数据库的数量变少,不能实时的跟数据库同步, 一般缓存文件都放在smarty文件下cach文件夹中: 建立缓存的PHP和HTML文件: 先编辑PHP文件来查询显示数据库当 ...
- 12月18日Smarty文件缓存
缓存 做缓存的目的是为了让程序运行起来更加迅速.因为如果程序访问数据库时数据量较大,执行起来会比较慢.而且每一次刷新页面都会访问依稀数据库,然后再把数据显示在页面上. 设置缓存也有一个缺点,那就是缓存 ...
- smarty 内存缓存
<?php //缓存 //定义一个该页面的缓存文件路径 $filename="../cache/mainhc.html"; //设置一个缓存时间 $time=; //判断缓存 ...
- Smarty缓存技术总结
大家应该都知道合理使用缓存能有效的减轻网站的服务器压力,php Smarty作为一个非常优秀的php模板引擎,它为我们提供了非常简单而多样化的缓存操作,下面就让我们学习一下smarty缓存操作方面的一 ...
- 全面剖析Smarty缓存机制一[三种缓存方式]
今天主要全面总结下Smarty模板引擎中强大的缓存机制,缓存机制有效减少了系统对服务器的压力,而这也是很多开发者喜欢Smarty的原因之一,由于篇幅较大,便于博友阅读,这篇文章将剖析Smarty缓存的 ...
随机推荐
- RxJava 复杂场景 Schedulers调度
参考: https://blog.piasy.com/2016/10/14/Complex-RxJava-2-scheduler/ 以Zip为例,学习Schedulers的线程调度 要求: * cre ...
- OpenCV中的常用函数
1.cvLoadImage:将图像文件加载至内存: 2.cvNamedWindow:在屏幕上创建一个窗口: 3.cvShowImage:在一个已创建好的窗口中显示图像: 4.cvWaitKey:使程序 ...
- When to Redis ? when to MongoDB?
120down voteaccepted I would say, it depends on kind of dev team you are and your application needs. ...
- docker——Dockerfile创建镜像
写在前面: 继续docker的学习,昨天用docker成功跑了tomcat,但是在centos中镜像跑的容器手动装jdk和tomcat,今天学习用Dockerfile创建镜像,并在上面搭建java环境 ...
- C#中让窗体自动靠边隐藏
1: private void Yincangtimer_Tick(object sender, EventArgs e)//窗体隐藏事件 2: { 3: int a = Control.MouseP ...
- 8000401a 错误及解决办法
将web程序部署到服务器上时,偶尔会遇到下面的错误: System.Runtime.InteropServices.COMException (0x8000401A): 检索 COM 类工厂中 CLS ...
- readonly disabled 区别
readonly 提交表单时包含该属性的内容 控件 disabled 不包含该属性
- CentOS6.2下安装eclipse
在eclipse官网下载eclipse的linux版本(此处省略下载过程),我下载的是eclipse-jee-indigo-SR2-linux-gtk.tar.gz,下面是安装过程: 1.sudo ...
- iOS 根据文件名获取到文件路径
根据文件名来获取文件路径(Document目录下) //根据文件名来获取文件路径 - (NSString *)dataFilePath:(NSString *)sender { NSArray *pa ...
- 检查class排座位
在写这篇文章之前,xxx已经写过了几篇关于改检查class主题的文章,想要了解的朋友可以去翻一下之前的文章 每日一道理 灯,带有一种明亮的光,每当深夜来临,是它陪伴着你,如此默默无闻.它是平凡 ...