12月18日Smarty文件缓存
- 缓存
- 做缓存的目的是为了让程序运行起来更加迅速。因为如果程序访问数据库时数据量较大,执行起来会比较慢。而且每一次刷新页面都会访问依稀数据库,然后再把数据显示在页面上。
- 设置缓存也有一个缺点,那就是缓存时间要设置好,如果缓存时间较长,那么数据库数据变化时,不能及时的在页面上显示。例如缓存不能用在秒杀商品,或者出售商品上面,因为数量不能及时的更新。
- <?php
- //缓存文件一般都放在caches文件夹里面。
- //定义一个该页面的缓存文件路径,也就是该缓存的文件放在哪个文件夹里面。
- $filename = "../cache/testhuancun.html";//定义了一个缓存的文件,文件名为testhuancun.html,位置在../cache文件夹里面。
- //设置一个缓存时间
- $time = 10;//代表缓存时间设置为10s.
- //判断缓存文件是否存在
- if(!file_exists($filename) || filemtime($filename)+$time<time())
- //判断文件是否存在,如果不存在,执行{}里面的代码。还要判断缓存时间有没有过,如果已经过了,要重新读取数据库更新缓存。
- //filemtime($filename)读取文件最后被修改的时间,time()取当前时间戳
- {
- //开启内存缓存
- ob_start();//这里开启内存缓存以后,下面要输出的内容全部放在内存缓存里面。
- include("../init.inc.php");
- include("../DBDA.php");
- $db = new DBDA();
- $sql = "select * from nation";
- $attr = $db->Query($sql);
- $smarty->assign("nation",$attr);
- $smarty->display("test.html");
- //把内存里面的内容读出来
- $nr = ob_get_contents();//ob就是代表的缓存,读取的内容就是整个静态页面。
- //将读到的内容存放到缓存文件
- file_put_contents($filename,$nr);//get是取出内容,put是往里放内容,把内存缓存的文件存到¥filename里面。
- //清除内存缓存
- ob_flush();//把内存缓存的内容清除掉,不让它们继续留在缓存内存里面,但是需要缓存的内容已经放在了$filename里面了,已经保存下来了。
- echo "#############################";//输出内容加上一句话,观察输出内容是输出的缓存页面还是加载数据库的页面。这句话放在了ob_flush后面,不会被清除掉。
- }
- else//如果缓存文件存在,直接将缓存文件拿到页面显示。
- {
- include($filename);//将缓存的页面加载到显示页面中
- }
- ?>
下面是test.html文件内容
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- </head>
- <body>
- <table width="100%" border="1" cellpadding="0" cellspacing="0">
- <tr>
- <td>代号</td>
- <td>名称</td>
- </tr>
- <{foreach $nation as $v}>
- <tr>
- <td><{$v[0]}></td>
- <td><{$v[1]}></td>
- </tr>
- <{/foreach}>
- </table>
- </body>
- </html>
12月18日Smarty文件缓存的更多相关文章
- 2016年12月18日 星期日 --出埃及记 Exodus 21:13
2016年12月18日 星期日 --出埃及记 Exodus 21:13 However, if he does not do it intentionally, but God lets it hap ...
- 北京Uber优步司机奖励政策(12月18日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 12月18日风险投资速递:Facebook收购实时体育数据提供商Sport Stream
国内公司 1.手游公司成都掌沃无限获得近千万元天使投资 成都掌沃无限成立于2013年,是一家新成立的手机游戏开发商,创始人及CEO张涛拥有超过10年的游戏行业从业经验和连续创业经历,其首款游戏产品为& ...
- 深度学习DeepLearning技术实战(12月18日---21日)
12月线上课程报名中 深度学习DeepLearning(Python)实战培训班 时间地点: 2020 年 12 月 18 日-2020 年 12 月 21日 (第一天报到 授课三天:提前环境部署 电 ...
- 通用Mapper新特性:ExampleBuilder 2017年12月18日
package tk.mybatis.mapper.test.example; import org.apache.ibatis.session.SqlSession; import org.juni ...
- 12月15日smarty模板基本语法
smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...
- 2019年12月18日Linux开发手记
安装idle3: 1.端输入apt install idle3 以安装 2.安装完成后在终端输入idle以启动 配置pip: 1.终端输入apt install python3-pip 使用pip配置 ...
- 2020年12月18号--21号 人工智能(深度学习DeepLearning)python、TensorFlow技术实战
深度学习DeepLearning(Python)实战培训班 时间地点: 2020 年 12 月 18 日-2020 年 12 月 21日 (第一天报到 授课三天:提前环境部署 电脑测试) 一.培训方式 ...
- 2016年12月23日 星期五 --出埃及记 Exodus 21:18
2016年12月23日 星期五 --出埃及记 Exodus 21:18 "If men quarrel and one hits the other with a stone or with ...
随机推荐
- NFR
你NFR了吗? NFR,即非功能性需求 (Non -Functional Requirements) ,即系统能够完成所期望的工作的性能与质量.具体包括如下内容: – 效率: 软件实现其功能所需要的计 ...
- javascript中需要自行定义的函数
1.toString()与String() 使用方式:x.toString();-----String(x); String是万能的方法,而x.toString()则有局限性,无法将undefined ...
- 使用专业的消息队列产品rabbitmq之centos7环境安装
我们在项目开发的时候都不可避免的会有异步化的问题,比较好的解决方案就是使用消息队列,可供选择的队列产品也有很多,比如轻量级的redis, 当然还有重量级的专业产品rabbitmq,rabbitmq ...
- Java 发送邮件
使用Java应用程序发送E-mail十分简单,但是首先你应该在你的机器上安装JavaMail API 和Java Activation Framework (JAF) . 你可以在 JavaMail ...
- Tomcat 服务应用
转自:http://wiki.jikexueyuan.com/project/tomcat/windows-service.html Tomcat8 是一个服务应用,能使 Tomcat 8 以 Win ...
- how2heap分析系列:2_fastbin_dup
源码 #include <stdio.h> #include <stdlib.h> int main() { printf("This file demonstrat ...
- jQuery.ajaxComplete() 函数详解
ajaxComplete()函数用于设置当AJAX请求完成(无论成功或失败)时执行的回调函数. 这是一个全局AJAX事件函数,用于为所有AJAX请求的ajaxComplete事件绑定事件处理函数.当A ...
- PHP环境的搭建(Apache)
一,下载XAMPP集成软件包. 二,Apache的安装配置: Apache的安装就点击下一步下一步,默认路径在系统的C盘. 三,在star Apache的时候,出现了端口号80冲突(被占用),解决 ...
- 51nod 最小周长
1283 最小周长 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 一个矩形的面积为S,已知该矩形的边长都是整数,求所有 ...
- EncodingHelper
/// <summary> /// Url解码 /// </summary> /// <param name="str">原始字符串</p ...