日期:2014-05-18  浏览次数:20524 次

MVP级的高手请进。关于整站静态页生成的几种方法和疑惑!
各位好,对于大型门户网站,整站静态页的方式,目前总结下来,有几下几种办法,但各种方法都有期不完美的地方,所以深感疑惑,对于新浪、网易这种大型的门户网站,他们的静态页生成机制究竟是用的哪一种呢?如果以下几种都不是的情况下,那他们采用的是哪一种机制呢??

1.整站模板+样式,然后通过WEB IIS去读取数据库,通过这些模板和样式动态生成HTML文件并保存于服务器。
弊端:
如果在新闻量很大的情况下,模板有更改,那么岂不是要重新发布一次所有的页面?这样岂不是大量浪费时间和服务器资源?
而且,如果是BBS或者评论这种更新速度比较快的东西,那么这些页面怎么办?

2.各新闻保存时自动生成。
弊端:
在保存文件时生成文件,解决了一次发布大量信息时的服务器资源浪费问题。且如果内容有更改,页面会及时得以更新,但如果在内容没有更改,只是模板文件有更改的情况下怎么办呢?


而且,以上两种方法都有一个问题,就是局部动态的问题。如果模板中局部信息是动态的,更新速度比较快的,比如BBS的最新帖子。那么这部分这么解决,现在我们采用的方法是用JS动态加载,但用JS动态加载的话对搜索引擎的支持就会非常差了。如果不用JS动态加载,那么只能采用IFRAME的方式来解决?

3.在WEB.CONFIG中配置节点,自定义类去接收所有的HTTP访问请求,每请求一个HTML时,如此HTML不存在,则去判断是HTML是否能映射到某个动态文件(根据某个映射配置文件查找),如果能映射到某个动态文件,那么,立即生成此HTML文件,并呈现给用户。
弊端:
此种方法,如果模板或内容有更新怎么办?目前我们采取的方法是:每请求一个HTML,如果此HTML存在,则根据配置文件判断内容是否已过期(一般为5分钟),如果已过期,则重新生成此HTML并呈现给用户。这样一来,很好的解决了更新的问题,只不过在更新后会有5分钟的间隔时间。
但又有一个问题出现了,如果自定义类去接收所有的HTTP访问请求,那么每个用户的各种请求都会接收到(包括CSS文件),虽然可以根据扩展名来判断,非HTML不去做其余的逻辑操作,但:这样是否会造成服务器资源的浪费?是否会极大的损耗服务器的性能?

综上所述,目前完全没有一种完美的办法来解决HTML的问题,请问各位同仁,像新浪、网易这种站点是如何解决此问题的?谢谢!


------解决方案--------------------
来看MVP
------解决方案--------------------
占位,等mvp来解答
------解决方案--------------------
up
------解决方案--------------------
路过...参观MVP...
------解决方案--------------------
帮楼主顶,等mvp
------解决方案--------------------
关注,帮顶
------解决方案--------------------
板凳
------解决方案--------------------
学习
------解决方案--------------------
参观 MVP


------解决方案--------------------
MVP在哪里啊
------解决方案--------------------
瞻仰MVP
------解决方案--------------------
引用楼主 tddw 的帖子:
各位好,对于大型门户网站,整站静态页的方式,目前总结下来,有几下几种办法,但各种方法都有期不完美的地方,所以深感疑惑,对于新浪、网易这种大型的门户网站,他们的静态页生成机制究竟是用的哪一种呢?如果以下几种都不是的情况下,那他们采用的是哪一种机制呢??

1.整站模板+样式,然后通过WEB IIS去读取数据库,通过这些模板和样式动态生成HTML文件并保存于服务器。
弊端:
如果在新闻量很大的情况下,模板有更改…

------解决方案--------------------
静态文件通过索引文件生成静态或伪静态网页
------解决方案--------------------
有个东西叫SQUID,有兴趣的可以找找相关资料来看看


------解决方案--------------------
没想那么多。不过写了几篇介绍静态页面的文章,请大家批评:
http://www.svnhost.cn/Article/?k=%E9%9D%99%E6%80%81
------解决方案--------------------
等待!!!!!!!!!!!!!!
------解决方案--------------------
等待!!!!!!!!!!!!!!
------解决方案--------------------
学习,静等MVP....
------解决方案--------------------
BBS的最新帖子 用xml
------解决方案--------------------
参观MVP...
------解决方案--------------------
帮顶一个。
我以前做过静态页面的生成,如果模板更改了,有个专门的工具,把所有的页面生成一遍,用的就是这个方法。
------解决方案--------------------
还有另外一个方法,如新闻静态页面:在每条新闻中有两个字段,一个最后编辑时间、一个静态页面生成时间,打开新闻时比较最后编辑时间如果在静态页面生成时间后,则先去生成静态页面再打开页面。