Home  >  Article  >  Backend Development  >  网页静态化,几时静

网页静态化,几时静

WBOY
WBOYOriginal
2016-06-13 12:58:22862browse

网页静态化,何时静?
昨天上线的一个IT导航,看了点SEO方面的知识,我决定把页面都静态化,提高访问效率。我把页面做成模版,然后写一个页面调用模版,生成新的html。但是这样每次我都要访问那个处理静态化的页面才能把网页更新。也想过每次新添内容的时候就调用处理静态化的页面更新一下。在这里想问大家是怎么处理的?网址是hao123it.com
------解决方案--------------------
对于导航网站,内容更新的权限都在自己手中,那么只需要每次有内容更新的时候,重新生成静态页面就ok了。
------解决方案--------------------
LZ可以去看一下php的Smarty模板引擎,第一次生成静态页面,以后每次访问该静态页面。
------解决方案--------------------
http://blog.csdn.net/yizhu2000/archive/2008/09/01/2863324.aspx
看看这篇文章.太牛了
------解决方案--------------------
都回去过年了。  你静态,比如时长不更新 或者访问比较大的页面可以使用静态
------解决方案--------------------
的确可以去看一下php的Smarty模板引擎,第一次生成静态页面,以后每次访问就可以访问静态页面了。
具体例子可以查看114啦导航网站的,里面就是用这个实现的。
------解决方案--------------------

引用:
引用:

的确可以去看一下php的Smarty模板引擎,第一次生成静态页面,以后每次访问就可以访问静态页面了。
具体例子可以查看114啦导航网站的,里面就是用这个实现的。

首页是经常更新的呢?


根据网站的类型来决定哪部分页面需要静态化,哪部分功能页面不需要静态化,一般来说,静态化主要针对新

闻类网站内容页面,而且对于更新非常频繁的不建议静态化,而是应该使用缓存的方法。


谈谈网站静态化 收藏
写在前头

静态化是解决减轻网站压力,提高网站访问速度的常用方案,但在强调交互的We2.0 时代,对静态化提出了更高的要求,静态不仅要能静,还要能动,下面我通过一个项目,谈谈网站静态化后的架构设计方案,同时和大家探讨一下,在开源产品大行其道,言架构必称MemberCache, Nginx,的时代,微软技术在网站架构设计中的运用.
静态化的设计原则和步骤

静态化是解决减轻网站压力,但是静态化也会带来一系列的问题,包括开发上复杂度的增加,维护难度的增加,运用不的当,更可能适得其反,而许多替代方案,比如页面缓存,如果运用得当,也能起到很好的效果,所以在开始之前,必须进行详细的考察,确定是否适合静态化,并制定适合的静态化方式,下面先介绍一下
l         考查读写比:
读写比,准确的说是读写负荷比,是否值得静态化的最终考虑,由于一般写入的压力明显大于读出的压力,如果写入太频繁,或者每次写入消耗的资源太多,都不能达到效果,我觉得读写比例10:1应该是个上限.具体情况需要根据自己的业务逻辑判断
 
l         确定页面呈现的内容是否适合静态化:
在设计方案时,必须详细考虑每个原型页面,找到页面上展示的信息,和他的更新方式,更新时机,更新频率,一定要注意那些不起眼的信息,他们可能左右你的设计,
比如:我们以CSDN的论坛的任意一篇帖子为例,进行分析

上面的帖子中呈现的内容主要是这样几块,帖子内容,回复内容,发帖人回复人的用户信息
n         帖子内容和回复内容在发帖时更新,发帖后用户可以修改其内容,更新频率高
n         用户信息,用户修改个人信息时可能会发生更改,用户等级增加时也可能发生更改,比如加星,更新频率低
n         回复数将每次回复后都要更改,更新频率高
n         设计时要注意细节,如上图中圈出来的部分,这些部分是怎么修改的,频率有多大,一个都不能放过.
l         确定生成方式:
在上面帖子一例中.每次更改都重新生成页面是不可取的,一篇比回复数多的帖子,需要的数据量是巨大的(每层楼的用户信息,回复内容),任何修改,都需要重新取出数据进行生成是不能允许的.一般除非你的页面基本不用更新,或者更新开销极小,(比如一段嵌入的广告代码)才能采用整体更新的方式,不然就需要我们找到合适的更新页面局部区域的方法:
一般有下面两个方法:
1)      正则修改法:
        比如,如果帖子中的回复数,html代码是这样
        
        我们可以通过用下面正则来查找并替换计数
         (?)\d{1,}
2)      页面区域分块:
把页面分成很多小块,在显示时组装起来,比如DotText就采用这个方法
这是一篇典型的Dottext blog页面,其中红色标定部分是一个独立的文件,而黄色框内的是脚本动态加载,这些部分在最终显示的时候组合起来,最终构成了一篇Blog,具体的组合方法也有多种,可以使用Include,也可以自己来实现.DotText就自己实现了一套加载机制
 
上面的两种方法并不孤立,并可以根据需要,配合使用
 
l         确定需要动态加载的信息:
页面上总有一些内容看起来不太适合静态化,最典型的是一些统计结果,比如如果你在做一个图书介绍页面,可能就会需要展示图书的当天综合评分,或者书籍排名,这些内容需要用脚本进行动态加载
既然做了静态化,就是希望减少服务器负载,动态加载的数据总是不得已而为之,有的时候在需求允许的情况下,我们在数据在实时性和性能方面做一些妥协,比如上面帖子中的用户星级和昵称,从数据实时性上说,当用户的星级增长,他发言的所有帖子都应该发生变化,所以应该用动态加载.然而其实上这些信息如果不发生变化,也无伤大雅,用户反而能够看到自己在多年前发帖时的级别和昵称.
现实中的项目

X网站是大型的电影资讯,电影社区,向外提供电影相关信息服务,以及用户社区,其中信息服务部分, 其中大部分页面属于信息呈现页,读取量比较大,百万级别pv,信息主要由编辑在后台发布,更新较少,但其页面上有大量的交互性的内容,比如评论,收藏列表,同时许多内容允许用户创造,比如上传图片,添加注释.交互内容的数量和交互的频繁程度,都超过了普通的咨询页面,这次调整,准备将其中访问量最大的几块:电影资料页,影人资料页,进行静态化,如果成功,还将运用到更多的频道,基本实现全站静态化
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn