首先需要在mySmarty中添加配置信息,开启缓存,设置缓存文件存放目录,设置缓存时间
缓存可以实现减少访问数据库,减轻数据库压力,访问一次数据库,形成静态页面,下次直接调用这个页面,也可以用nocache标签实现局部不缓存

在mysmarty类中添加的语句

  1. $this->cache_dir='./cache';//缓存文件存放目录
  2.  
  3. //开启缓存
  4. $this->caching=true;
  5. //配置缓存的生命周期
  6. $this->cache_lifetime=3600;//单位是秒

控制页面01.php

  1. <?php
  2. //演示缓冲
  3. require('../../smarty3/libs/smarty.class.php');
  4.  
  5. require('./mySmarty.php');
  6.  
  7. //定义方法
  8. function insert_welcome(){
  9. return 123;
  10. }
  11. //创建对象
  12. $smarty=new mySmarty();
  13.  
  14. //是否开启缓存
  15.  
  16. $arr=array();
  17. if(!$smarty->isCached('01.html')){
  18. $conn=mysql_connect('localhost','root','111111');
  19. mysql_query('use boolshop',$conn);//选库
  20. mysql_query('set names utf8',$conn);//设置编码
  21. $sql='select goods_id,goods_name,goods_number,shop_price from goods limit 5';
  22. $rs=mysql_query($sql,$conn);
  23.  
  24. while(($row=mysql_fetch_assoc($rs))!==false){
  25. $arr[]=$row;
  26. }
  27. echo '我走了数据库';
  28. }
  29. //$smarty->clearCache('01.html');//强制清除缓存
  30. $smarty->assign('suiji',rand(),true);//如果第三个参数是true,则这个变量不缓存
  31. $smarty->assign('goods',$arr);
  32. $smarty->display('01.html');
  33.  
  34. ?>

显示页面01.html

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>显示数据</title>
  6. <style type="text/css">
  7. {literal}
  8. p{
  9. font-size:25px;
  10. background:green;
  11. }
  12.  
  13. {/literal}
  14. </style>
  15.  
  16. </head>
  17. <body>
  18. <p>这里是一个随机数{rand()*100 nocache}添加nocache属性不缓存(局部的)<p>
  19. <p>这是用assign传的值{$suiji}</p>
  20. 用foreach遍历数组<br/>
  21. {foreach from=$goods key='key' item='v'}
  22. <p>
  23. id号:{$v['goods_id']},商品名字:{$v['goods_name']},商品价格{$v['shop_price']},商品储存量 {$v['goods_number']}
  24.  
  25. </p>
  26. {/foreach}
  27. <p>{insert name='welcome' nocache}</p>
  28. </body>
  29. </html>

smarty实现缓存的更多相关文章

  1. Smarty Caching缓存 ¥ 我要打赏

    Smarty Caching缓存 https://www.yiibai.com/smarty/smarty_caching.html https://www.w3cschool.cn/smarty/s ...

  2. smarty之缓存机制

    当smarty开启缓存时,当tpl文件内容改变时,则缓存页面会重新生成 test.php: <?php date_default_timezone_set('asia/shanghai'); h ...

  3. smarty之缓存笔记

    smarty缓存技术 在smarty中,缓存分为:普通缓存,单模版都缓存,局部缓存. 缓存:1:首选打开缓存配置项:$smarty->caching=true; 2:缓存生命周期的配置选项:$s ...

  4. smarty学习——缓存

    存被用来保存一个文档的输出从而加速display()或fetch()函数的执行.如果一个函数被加进缓存,那么实际输出的内容将用缓存来代替. 缓存可让事物非常快速的执行,特别是带有长计算时间的模板.一旦 ...

  5. smarty静态缓存

    缓存能让程序访问起来更加快速,调数据库的数量变少,不能实时的跟数据库同步, 一般缓存文件都放在smarty文件下cach文件夹中: 建立缓存的PHP和HTML文件: 先编辑PHP文件来查询显示数据库当 ...

  6. 12月18日Smarty文件缓存

    缓存 做缓存的目的是为了让程序运行起来更加迅速.因为如果程序访问数据库时数据量较大,执行起来会比较慢.而且每一次刷新页面都会访问依稀数据库,然后再把数据显示在页面上. 设置缓存也有一个缺点,那就是缓存 ...

  7. smarty 内存缓存

    <?php //缓存 //定义一个该页面的缓存文件路径 $filename="../cache/mainhc.html"; //设置一个缓存时间 $time=; //判断缓存 ...

  8. Smarty缓存技术总结

    大家应该都知道合理使用缓存能有效的减轻网站的服务器压力,php Smarty作为一个非常优秀的php模板引擎,它为我们提供了非常简单而多样化的缓存操作,下面就让我们学习一下smarty缓存操作方面的一 ...

  9. 全面剖析Smarty缓存机制一[三种缓存方式]

    今天主要全面总结下Smarty模板引擎中强大的缓存机制,缓存机制有效减少了系统对服务器的压力,而这也是很多开发者喜欢Smarty的原因之一,由于篇幅较大,便于博友阅读,这篇文章将剖析Smarty缓存的 ...

随机推荐

  1. RxJava 复杂场景 Schedulers调度

    参考: https://blog.piasy.com/2016/10/14/Complex-RxJava-2-scheduler/ 以Zip为例,学习Schedulers的线程调度 要求: * cre ...

  2. OpenCV中的常用函数

    1.cvLoadImage:将图像文件加载至内存: 2.cvNamedWindow:在屏幕上创建一个窗口: 3.cvShowImage:在一个已创建好的窗口中显示图像: 4.cvWaitKey:使程序 ...

  3. When to Redis ? when to MongoDB?

    120down voteaccepted I would say, it depends on kind of dev team you are and your application needs. ...

  4. docker——Dockerfile创建镜像

    写在前面: 继续docker的学习,昨天用docker成功跑了tomcat,但是在centos中镜像跑的容器手动装jdk和tomcat,今天学习用Dockerfile创建镜像,并在上面搭建java环境 ...

  5. C#中让窗体自动靠边隐藏

    1: private void Yincangtimer_Tick(object sender, EventArgs e)//窗体隐藏事件 2: { 3: int a = Control.MouseP ...

  6. 8000401a 错误及解决办法

    将web程序部署到服务器上时,偶尔会遇到下面的错误: System.Runtime.InteropServices.COMException (0x8000401A): 检索 COM 类工厂中 CLS ...

  7. readonly disabled 区别

    readonly 提交表单时包含该属性的内容 控件 disabled 不包含该属性

  8. CentOS6.2下安装eclipse

    在eclipse官网下载eclipse的linux版本(此处省略下载过程),我下载的是eclipse-jee-indigo-SR2-linux-gtk.tar.gz,下面是安装过程:  1.sudo ...

  9. iOS 根据文件名获取到文件路径

    根据文件名来获取文件路径(Document目录下) //根据文件名来获取文件路径 - (NSString *)dataFilePath:(NSString *)sender { NSArray *pa ...

  10. 检查class排座位

    在写这篇文章之前,xxx已经写过了几篇关于改检查class主题的文章,想要了解的朋友可以去翻一下之前的文章     每日一道理 灯,带有一种明亮的光,每当深夜来临,是它陪伴着你,如此默默无闻.它是平凡 ...