论坛首页 Java版 企业应用

网站的静态页面生成方案

浏览 13828 次
精华帖 (2) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (0)
作者 正文
最后更新时间:2008-07-21
楼主的方法小小的web网站还可以

其实生成静态页面没有这么简单
通常有专门的发布服务,生成服务,模板服务,图片服务,数据库服务,前端静态解析服务器。。。。

发布信息时候,会根据信息的规则提取想对应的模板,用专门生成的服务来生成静态的页面,
然后推送到前端的前端静态解析服务器,通常这种服务器都用apache里解析。
基本是不用url重定向的,用户访问的是时候前端服务器直接作解析,和什么.do .action没有关系的。
也就是说前后都是分开的,发布就是发布,生成就是生成,解析的就是解析的。。
   
0 请登录后投票
最后更新时间:2008-08-27
其实网站html静态化处理在很多网站中或CMS中都存在这个功能,
打开某人的新浪博客,可以看到载入的就是静态html页面,其它只有那些统计数据和网友评论是ajax动态从数据库中取得数据的。。
我觉得应该是这样子的,当某人发表一篇博客文章,系统将数据存到数据库,并自动为这篇文件自动创建html静态页面,当其它人访问时,系统就直接找这篇文章html的地址然后把文章展现出来(如果找不到,再查找数据库,再自动生成这篇文章的静态页面,然后把文章展现出来)。。想想如果一篇文章里面有很多的文字和图片,如果每次有人访问都查询数据库,会数据库造成很大的负担。。
通过静态化,直接访问html,会减轻服务器和系统的负担,而且html静态页面更利于百度或google爬虫,利于搜索引擎对站点页面的收录。
只是一个站点的静态化要有很好的设计和控制机制,使得每次数据内容修改都会生成相应的静态页面,使得不会生成重复的静态页面,使得如访问的静态页面不存在(被删除或丢失)能在数据库中找到原始数据等
还有像论坛(如我们现在用的这个jforum论坛)一般用的是缓存机制,将共同的信息缓存起来(内存中),比如说“最热门帖子”块,每次缓存50条最热门的帖子,以后用户访问“最热门帖子”这一版块时,其它这50条数据不是从数据库中读取的,而是从缓存中读出来的,以后只要在一段时间刷新一次缓存即可。只是缓存存在即时更新的问题,有些数据无法即时更新,这在设计时要做好权衡控制。
   
2 请登录后投票
最后更新时间:2008-07-29
说到新闻、论坛、博客,这些使用后台系统静态生成html,前台基本都是html这没什么问题,可是有些业务系统或查询系统,使用这种方式还是很好的。
   
0 请登录后投票
最后更新时间:2008-07-29
不能说楼主的不是解决方案,但是这不是一个好的解决方案,需要好的请google it
   
0 请登录后投票
最后更新时间:2008-07-29
bingoit 写道
其实网站html静态化处理在很多网站中或CMS中都存在这个功能,
打开某人的新浪博客,可以看到载入的就是静态html页面,其它只有那些统计数据和网友评论是ajax动态从数据库中取得数据的。。
我觉得应该是这样子的,当某人发表一篇博客文章,系统将数据存到数据库,并自动为这篇文件自动创建html静态页面,当其它人访问时,系统就直接找这篇文章html的地址然后把文章展现出来(如果找不到,再查找数据库,再自动生成这篇文章的静态页面,然后把文章展现出来)。。想想如果一篇文章里面有很多的文字和图片,如果每次有人访问都查询数据库,会数据库造成很大的负担。。
通过静态化,直接访问html,会减轻服务器和系统的负担,而且html静态页面更利于百度或google爬虫,利于搜索引擎对站点页面的收录。
只是一个站点的静态化要有很好的设计和控制机制,使得每次数据内容修改都会生成相应的静态页面,使得不会生成重复的静态页面,使得如访问的静态页面不存在(被删除或丢失)能在数据库中找到原始数据等
还有像论坛(如我们现在用的这个jforum论坛)一般用的是缓存机制,将共同的信息缓存起来(内存中),比如说“最热门帖子”块,每次缓存50条最热门的帖子,以后用户访问“最热门帖子”这一版块时,其它这50条数据不是从数据库中读取的,而是从缓存中读出来的,以后只要在一段时间刷新一次缓存即可。只是缓存存在即时更新的问题,有些数据无法即时更新,这在设计时要做好权衡控制。



你看到的很多html都是动态页面,后缀html不说明什么问题。

即使这个html真的是静态页面,上面依然很有可能通过Ajax再动态取数据,新浪的新闻简单讨论就是这么做的。而且这种Ajax取数据的方式,一般的爬虫也是拿不到内容的。
   
0 请登录后投票
最后更新时间:2008-07-29
谢谢啊!!!找很久了
   
0 请登录后投票
最后更新时间:2008-07-29
对于资讯性质的网站,静态化非常重要,功能性网站,没这个必要
   
0 请登录后投票
最后更新时间:2008-08-18
对于CMS静态发布,我用的是用Veocity模板去 生产的,根据一定的业务逻辑去生产要用的页面! 最终是run一些定时的job,对于楼上说的 URLRewrite的东西,这个是看公司根据什么业务去映射,怎么处理,有的是为了seo而写的URLRewrite规则,有的则只是映射一个虚拟的路径,因情况而异了! 我们用的就是apatche的URLRewrite
   
0 请登录后投票
最后更新时间:2008-08-19
我曾经尝试过在ASP.NET中做这样的事情,用某户访问某个页面时,先从配置里读取判断该页面是否需要生成静态,如果需要,则先找存储目录内是否有此文件的html文件,如果有,则将据配置里对此路径下文件的缓存时间和该html生成时的时间戳,做运算比较,如果已经过期,则重新生成,如果未过期,直接重写地址到这个文件。
eg:
http://www.cnblogs.com/huobazi/archive/2007/12/31/UrlRewriteAndHttpHanderAndMakeStaticHtmlFiles.html

另外这里还可以放一个判断如果当前浏览器是搜索引擎爬虫,则可以做一下特殊处理,这个要根据自己实际情况处理了,如果文件特多,爬虫怕的较快,会带来频繁的IO操作的。
   
0 请登录后投票
最后更新时间:2008-08-19
笑 喘 写道
yananay 写道
把对 index.do 请求后的结果保存成一个 html 文件,然后每次用户都去访问 http://xyz.com

动态的jsp被弄成静态的html之后,还有他的作用吗?

我做过一些信息网站的页面,页面分成很多小模块,每个模块的数据都是动态从数据库的各个表里查的,这样每次加载这个页面的速度都很慢,后来把这个页面写成一个今态的,一个维护后台专来维护这个页面,每天准时执行一次维护,重新查询一次数据库后生成一个新的静态页面,用户每次登陆就直接连接这个静态页面,效率高很多,还有就是所有新闻页面都是静态的,定期生成一定数量的静态页面放在服务器,这样也减少了很多查询数据库的操作。当然一定要有完善的后台来维护了。
   
0 请登录后投票
论坛首页 Java版 企业应用

跳转论坛:
JavaEye推荐