php使用ob缓存来实现动态页面静态化

例子:

<?phpinclude_once ‘common/common.php‘;//数据库操作方法

$fileName = ‘test.html‘;$expr = 10;//缓存时间$time_start = microtime();if( file_exists($fileName)){//判断文件是否存在   $fileCreateTime = filectime($fileName);   if ($fileCreateTime+$expr > time()) {//判断缓存文件是否过期      /*没有过期,输出缓存文件*/      echo file_get_contents($fileName);      $time_end = microtime();      echo ‘<br>查询静态页面花费的时间:‘;      echo $time_end - $time_start;      die();   }else{      /*删除过期文件*/      unlink($fileName);   }}ob_start();$sql = "SELECT classname FROM category WHERE cid > 0";$res = mySelect($conn,$sql);foreach ($res as $k => $v){   echo "<a href=‘http://www.baidu.com‘>".$v[‘classname‘]."</a>"."<br>";}echo date(‘Y-m-d H:i:s‘,time());$time_end = microtime();echo ‘<br>查询数据库花费的时间:‘;echo $time_end - $time_start;/*将页面缓存起来*/$content = ob_get_contents();$fp = fopen(‘test.html‘,‘w‘);fwrite($fp,$content);fclose($fp);ob_end_clean();

从输出时间差发现,加载静态页面速度远远大于动态页面

参考:http://www.jb51.net/article/74342.htm  http://www.jb51.net/article/47951.htm
时间: 2024-10-24 17:49:29

php使用ob缓存来实现动态页面静态化的相关文章

学习笔记 --- 缓存、动态页面静态化、网站优化

http://www.cnblogs.com/cs_net/archive/2011/03/17/1986620.html 一.缓存 缓存(Cache)技术在软件开发过程中有着广泛的用途, 它对提升软件性能和改善客户体验有很大帮助. 所谓缓存, 是指将那些经常重复的操作结果暂时存放起来, 在以后的执行过程中, 只要使用前面的暂存结果即可. 缓存技术在日常生活中随处可见, 就拿排队买票来说吧: 买票时需要先排队, 等轮到自己了, 再告诉售票员你需要买那里的票, 售票员查询完后告诉你有还是没有. 若

Asp.net动态页面静态化之初始NVelocity模板引擎

Asp.net动态页面静态化之初始NVelocity模板引擎 静态页面是网页的代码都在页面中,不须要运行asp,php,jsp,.net等程序生成client网页代码的网页,静态页面网址中一般不含"?"."="."&"等特殊符号. 静态页面不能自主管理公布更新的页面,假设想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件改动(通过fso等技术例外) 常见的静态页面举例:.html扩展名的..htm扩展名的. 注意:静态页面并

动态页面静态化的实现

首先,应该明确动态页面与静态页面之间的区别,为什么静态页面的加载要比动态的快. PHP文件的执行阶段是:语法分析——>编译——>运行. 动态是执行这整个过程. 静态(只是一个纯静态的 html 文件),跳过了分析和编译的步骤,直接运行. (优化页面响应时间的常见四种方法:动态页面静态化,优化数据库,使用负载均衡,使用缓存..) 静态化用于那些不需要经常变动的页面,生成一个静态页面供用户访问,以减少服务器脚本的响应.计算时间. PHP静态化-->伪静态:可以通过设置apache服务器得到,

Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化

模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则.强大的功能.高效的渲染效率.详尽的帮助说明与不断的更新与维护.常见的前端模板引擎有: 常用的java后台模板引擎:jsp.FreeMarker.Velocity等. 请不要迷恋速度,为了推广的测试可能是片面的,好的模板引擎经得起时间考验,建议大家选择成熟的.常用的模板引擎.另外不管前后端的模板引擎

Asp.net动态页面静态化之include和parse区别

Asp.net动态页面静态化之include和parse区别    #include就是在模版中在将其他模版包括进来,就好比网站的头部,尾部,广告模版等等,这些内容都是相同的时候,就可以做成一个单独的模版供各处引用. #parse的用法跟#include相类似,如果将上面的代码改成#parse之后,效果是一样的,#parse的特殊功能在于,它可以解析Nvelocity元素,比如,body.html 模版使用Nvelocity变量 $body ,如果使用#parse引用head.html和foot

Asp.net动态页面静态化之输出对象属性(实体关联)

Asp.net动态页面静态化之输出对象属性(实体关联) 模板引擎不单单可以输出单一的数据,还能直接输出对象的属性 using System; using System.Collections.Generic; using System.Linq; using System.Web; using NVelocity.Runtime; using NVelocity; using NVelocity.App; namespace czbk { /// <summary> /// Handler2

Asp.net动态页面静态化之字典哈希表的输出已及遍历判断的实现

Asp.net动态页面静态化之字典哈希表的输出已经遍历判断的实现 using System; using System.Collections.Generic; using System.Linq; using System.Web; using NVelocity.Runtime; using NVelocity; using NVelocity.App; using System.Collections; namespace czbk { /// <summary> /// diction

Nodejs基于Express4的动态页面静态化

上个星期在慕课网上提了个问:Express4开发的动态页面访问好慢的说?不幸的是并没有得到可行的回答,周末自己折腾了一番,一并将小站(花满楼)的几个页面全部静态化了:事后想了想,虽不是什么特别标准好的搞法,但纠结这么久了,这个问题终于有办法了,还是有些欣慰的: 一开始页面都是动态的,由jade模板render出来的,可不明白为什么不论页面内容多少,打开都至少要一秒多...:后来专门弄个站点作为静态资源站,缓存加gzip(Nodejs打造静态资源服务器与文件上传):OK,静态资源现在没啥大问题了:

动态页面静态化

curl http://bbs.51cto.com/post.php?action=newthread > 1.html 临时生成一个页面,不在去读数据库,但是有一个弊端,不会实时更新,可以写到计划任务,5分钟执行一次,重新生成一个静态页面