各位好,对于大型门户网站,整站静态页的方式,目前总结下来,有几下几种办法,但各种方法都有期不完美的地方,所以深感疑惑,对于新浪、网易这种大型的门户网站,他们的静态页生成机制究竟是用的哪一种呢?如果以下几种都不是的情况下,那他们采用的是哪一种机制呢??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的问题,请问各位同仁,像新浪、网易这种站点是如何解决此问题的?谢谢!
弊端:
如果在新闻量很大的情况下,模板有更改,那么岂不是要重新发布一次所有的页面?这样岂不是大量浪费时间和服务器资源?
而且,如果是BBS或者评论这种更新速度比较快的东西,那么这些页面怎么办?2.各新闻保存时自动生成。
弊端:
在保存文件时生成文件,解决了一次发布大量信息时的服务器资源浪费问题。且如果内容有更改,页面会及时得以更新,但如果在内容没有更改,只是模板文件有更改的情况下怎么办呢?
而且,以上两种方法都有一个问题,就是局部动态的问题。如果模板中局部信息是动态的,更新速度比较快的,比如BBS的最新帖子。那么这部分这么解决,现在我们采用的方法是用JS动态加载,但用JS动态加载的话对搜索引擎的支持就会非常差了。如果不用JS动态加载,那么只能采用IFRAME的方式来解决?3.在WEB.CONFIG中配置节点,自定义类去接收所有的HTTP访问请求,每请求一个HTML时,如此HTML不存在,则去判断是HTML是否能映射到某个动态文件(根据某个映射配置文件查找),如果能映射到某个动态文件,那么,立即生成此HTML文件,并呈现给用户。
弊端:
此种方法,如果模板或内容有更新怎么办?目前我们采取的方法是:每请求一个HTML,如果此HTML存在,则根据配置文件判断内容是否已过期(一般为5分钟),如果已过期,则重新生成此HTML并呈现给用户。这样一来,很好的解决了更新的问题,只不过在更新后会有5分钟的间隔时间。
但又有一个问题出现了,如果自定义类去接收所有的HTTP访问请求,那么每个用户的各种请求都会接收到(包括CSS文件),虽然可以根据扩展名来判断,非HTML不去做其余的逻辑操作,但:这样是否会造成服务器资源的浪费?是否会极大的损耗服务器的性能?综上所述,目前完全没有一种完美的办法来解决HTML的问题,请问各位同仁,像新浪、网易这种站点是如何解决此问题的?谢谢!
新浪、网易这种站点是如何解决此问题的
人家有专门的C或C++开发的静态程序,专门生成静态页,而管理这些静态页也是通过这些程序来管理的,类似数据库管理我不是MVP,但我知道....
http://www.svnhost.cn/Article/?k=%E9%9D%99%E6%80%81
或用asp.net mvc框架
http://www.fshjob.com/zhaopin/fmx122696/服务站站长.html
坐等MVP
大部分网站静态化就楼主说的这几种 不过无非是人工静态 和程序自动静态
本人做静态网站时遇到动态的部分是静态页里加入动态部分,不过因为这样的很少 所以不会影响多少性能
静态化了 并不是说非要全HTML 动态语言也是可以用的
好了,见都见了,大家散伙吧