|
精华帖 (2) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-07-21
楼主的方法小小的web网站还可以
其实生成静态页面没有这么简单 通常有专门的发布服务,生成服务,模板服务,图片服务,数据库服务,前端静态解析服务器。。。。 发布信息时候,会根据信息的规则提取想对应的模板,用专门生成的服务来生成静态的页面, 然后推送到前端的前端静态解析服务器,通常这种服务器都用apache里解析。 基本是不用url重定向的,用户访问的是时候前端服务器直接作解析,和什么.do .action没有关系的。 也就是说前后都是分开的,发布就是发布,生成就是生成,解析的就是解析的。。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-08-27
其实网站html静态化处理在很多网站中或CMS中都存在这个功能,
打开某人的新浪博客,可以看到载入的就是静态html页面,其它只有那些统计数据和网友评论是ajax动态从数据库中取得数据的。。 我觉得应该是这样子的,当某人发表一篇博客文章,系统将数据存到数据库,并自动为这篇文件自动创建html静态页面,当其它人访问时,系统就直接找这篇文章html的地址然后把文章展现出来(如果找不到,再查找数据库,再自动生成这篇文章的静态页面,然后把文章展现出来)。。想想如果一篇文章里面有很多的文字和图片,如果每次有人访问都查询数据库,会数据库造成很大的负担。。 通过静态化,直接访问html,会减轻服务器和系统的负担,而且html静态页面更利于百度或google爬虫,利于搜索引擎对站点页面的收录。 只是一个站点的静态化要有很好的设计和控制机制,使得每次数据内容修改都会生成相应的静态页面,使得不会生成重复的静态页面,使得如访问的静态页面不存在(被删除或丢失)能在数据库中找到原始数据等 还有像论坛(如我们现在用的这个jforum论坛)一般用的是缓存机制,将共同的信息缓存起来(内存中),比如说“最热门帖子”块,每次缓存50条最热门的帖子,以后用户访问“最热门帖子”这一版块时,其它这50条数据不是从数据库中读取的,而是从缓存中读出来的,以后只要在一段时间刷新一次缓存即可。只是缓存存在即时更新的问题,有些数据无法即时更新,这在设计时要做好权衡控制。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-29
说到新闻、论坛、博客,这些使用后台系统静态生成html,前台基本都是html这没什么问题,可是有些业务系统或查询系统,使用这种方式还是很好的。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-29
不能说楼主的不是解决方案,但是这不是一个好的解决方案,需要好的请google it
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-29
bingoit 写道 其实网站html静态化处理在很多网站中或CMS中都存在这个功能,
打开某人的新浪博客,可以看到载入的就是静态html页面,其它只有那些统计数据和网友评论是ajax动态从数据库中取得数据的。。 我觉得应该是这样子的,当某人发表一篇博客文章,系统将数据存到数据库,并自动为这篇文件自动创建html静态页面,当其它人访问时,系统就直接找这篇文章html的地址然后把文章展现出来(如果找不到,再查找数据库,再自动生成这篇文章的静态页面,然后把文章展现出来)。。想想如果一篇文章里面有很多的文字和图片,如果每次有人访问都查询数据库,会数据库造成很大的负担。。 通过静态化,直接访问html,会减轻服务器和系统的负担,而且html静态页面更利于百度或google爬虫,利于搜索引擎对站点页面的收录。 只是一个站点的静态化要有很好的设计和控制机制,使得每次数据内容修改都会生成相应的静态页面,使得不会生成重复的静态页面,使得如访问的静态页面不存在(被删除或丢失)能在数据库中找到原始数据等 还有像论坛(如我们现在用的这个jforum论坛)一般用的是缓存机制,将共同的信息缓存起来(内存中),比如说“最热门帖子”块,每次缓存50条最热门的帖子,以后用户访问“最热门帖子”这一版块时,其它这50条数据不是从数据库中读取的,而是从缓存中读出来的,以后只要在一段时间刷新一次缓存即可。只是缓存存在即时更新的问题,有些数据无法即时更新,这在设计时要做好权衡控制。 你看到的很多html都是动态页面,后缀html不说明什么问题。 即使这个html真的是静态页面,上面依然很有可能通过Ajax再动态取数据,新浪的新闻简单讨论就是这么做的。而且这种Ajax取数据的方式,一般的爬虫也是拿不到内容的。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-29
谢谢啊!!!找很久了
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-29
对于资讯性质的网站,静态化非常重要,功能性网站,没这个必要
|
|
| 返回顶楼 | |
|
最后更新时间:2008-08-18
对于CMS静态发布,我用的是用Veocity模板去 生产的,根据一定的业务逻辑去生产要用的页面! 最终是run一些定时的job,对于楼上说的 URLRewrite的东西,这个是看公司根据什么业务去映射,怎么处理,有的是为了seo而写的URLRewrite规则,有的则只是映射一个虚拟的路径,因情况而异了! 我们用的就是apatche的URLRewrite
|
|
| 返回顶楼 | |
|
最后更新时间:2008-08-19
我曾经尝试过在ASP.NET中做这样的事情,用某户访问某个页面时,先从配置里读取判断该页面是否需要生成静态,如果需要,则先找存储目录内是否有此文件的html文件,如果有,则将据配置里对此路径下文件的缓存时间和该html生成时的时间戳,做运算比较,如果已经过期,则重新生成,如果未过期,直接重写地址到这个文件。
eg: http://www.cnblogs.com/huobazi/archive/2007/12/31/UrlRewriteAndHttpHanderAndMakeStaticHtmlFiles.html 另外这里还可以放一个判断如果当前浏览器是搜索引擎爬虫,则可以做一下特殊处理,这个要根据自己实际情况处理了,如果文件特多,爬虫怕的较快,会带来频繁的IO操作的。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-08-19
笑 喘 写道 yananay 写道 把对 index.do 请求后的结果保存成一个 html 文件,然后每次用户都去访问 http://xyz.com
动态的jsp被弄成静态的html之后,还有他的作用吗? 我做过一些信息网站的页面,页面分成很多小模块,每个模块的数据都是动态从数据库的各个表里查的,这样每次加载这个页面的速度都很慢,后来把这个页面写成一个今态的,一个维护后台专来维护这个页面,每天准时执行一次维护,重新查询一次数据库后生成一个新的静态页面,用户每次登陆就直接连接这个静态页面,效率高很多,还有就是所有新闻页面都是静态的,定期生成一定数量的静态页面放在服务器,这样也减少了很多查询数据库的操作。当然一定要有完善的后台来维护了。 |
|
| 返回顶楼 | |









