简单的页面缓冲技术(一)

2016-01-29 15:20 41 1 收藏

简单的页面缓冲技术(一),简单的页面缓冲技术(一)

【 tulaoshi.com - PHP 】

       · limodou·转载PHP中文用户
  
  前言
    其实说它为技术,也许不能说是真正的技术。这只不过是我自已想出来的页面处理的方法,当然与别人的想法可能是一致的。不过我还是想给它一个好听的名字。那么我这里所指的页面缓冲是什么呢?就是指将动态生成的页面保存起来,供下一次的使用。这样下一次访问它可能就不需要动态生成了。就象提供了一个cache 一样。在我的网站上,也许你的网站也是如此,使用了象模板之类的技术,这样用户所看到的页面就是动态生成的。但是一个页面对于你是这样,对于别人可能还是这样,即在一段时间内是不会变化的,如果将上次生成的结果直接返回给下一次访问的用户不是更好吗?减少了生成时间,效率要高一些。我想随着网站的发展,速度与效率问题还是要考虑的。这里我给出我的实现,希望对大家有所帮助。只是一个思路,没有具体的实现。
  
  使用条件
    是不是所有的网页最好都使用呢?我想不需要,而且也不可能。之所以能缓冲就是因为下一次访问与上一次访问的内容可能是完全一样的。所以对于经常变化的页面就不合适了。比如页面上要显示计数信息的就不太合适。还有就是如果你的动态页面输出时,没有先输出到变量中,而是直接返回给用户,如使用echo,print ,readfile之类的输出,我个人认为现在还作不到。因为无法将输出结果得到,保存到文件中去(反正我是想了半天没有想出有什么可以将直将输出的东西截下来,重定向到文件中去)。那么比较适的动态页面的处理就是:输出结果应该可以放到一个字符串之中。所以使用条件就是:
  
  页面基本不会变化
  
  动态页面的处理结果可以存放到字符串中
  
    这样使用模板类来处理动态页面就很好了。通过在模板中设置可替换的变量,然后根据实际的值替换相应的模板中的变量,同时可以将结果放到字符串中进行输出,这种模板类的处理非常适合保存处理后的页面。当然不使用模板类,也可以通过字符串的处理来生成输出结果也是可行的。至于怎么做就不讨论了。
  
  实现
    如前所述,不是一个真正的实现,而是一个实现的思路。
  
    处理流程:
  
  根据访问的要求,生成缓冲文件名
  
  查看文件名是否存在,如果文件不存在,则生成动态页面,将页面保存,同时输出结果,结束;如果存在,则执行第3步
  
  统计文件的修改时间,及与动态页面生成有关的文件的修改时间
  
  比较缓冲文件的修改时间与其它页面的修改时间,如果其它页面修改时间大于缓冲文件修改时间,认为动态结果可能会发生变化,则重新生成动态页面结果,保存到文件中,且输出结果,结束;否则执行第5步
  
  说明缓冲文件最新,则直接输出缓冲文件
  
    这就是我的处理。至于缓冲文件如何保存,可以建一个临时目录也可以使用数据库处理。如果使用了数据库则判断文件是否最新的方式也应作变化,比如在数据库中增加生成时间字段,比较这个时间字段与其它文件的修改时间即可。方法大家自已想。
  
  

 

来源:http://www.tulaoshi.com/n/20160129/1495690.html

延伸阅读
标签: SQLServer
  本段文章节选自铁道出版社新出的《用BackOffice建立Intranet/Extranet应用》一书(现已在海淀图书城有售)。本书详尽地讲述了如何使用微软BackOffice系列产品来组建Intranet/Extranet应用。通过它您将掌握NT的安装和设置、使用IIS建立Web站点、通过ILS建立网络会议系统、用Exchange建立企业的邮件和协作系统、用SQL Server建立Web数据库...
标签: SQLServer
  本段文章节选自铁道出版社新出的《用BackOffice建立Intranet/Extranet应用》一书(现已在海淀图书城有售)。本书详尽地讲述了如何使用微软BackOffice系列产品来组建Intranet/Extranet应用。通过它您将掌握NT的安装和设置、使用IIS建立Web站点、通过ILS建立网络会议系统、用Exchange建立企业的邮件和协作系统、用SQL Server建立Web数据库...
标签: Web开发
重复:在整个站点中重复实现某些页面设计风格。 重复的成分可能是某种字体、标题Logo、导航菜单、页面的空白边设置、贯穿页面的特定厚度的线条等。 颜色作为重复成分也很有用:为所有标题设置某种颜色,或者在标题背后使用精细的背景。 用对比来吸引读者的注意力。 通过对比来抓住读者的注意力,例如,你可以让标题在黑...
标签: ASP
  <html <head <title TimeBar Version 1.0 </title <meta http-equiv="Content-Type" content="text/html; charset=gb2312" <meta http-equiv="Refresh" content="20;url=" <style td {font-size: 10.5pt; color: 147e19; font-family: Courier New;} </style ...
标签: Web开发
译自: iPad终于发布了,那么如果用样式区分iPad和iPhone中的safari浏览器,Jason Grigsby做了一个有用的实验。 就绝大部分而言,iPad上的移动版safari和iPhone上的事一样的。我发现的一个不同是,iPad上的webkit支持基于方向(orientation)的CSS媒体查询(media query)声明。 我为iPad创建了。 在CSS中使用orientation 非常简单,代码就行...

经验教程

796

收藏

47
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部