您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 通用航空网站静态化设计方案
通用航空网站静态化设计-合众信达目的..................................................................................................................................................1可借鉴网站的静态化方案...............................................................................................................1通用航空网站静态化方案:...........................................................................................................21.整体设计目标:....................................................................................................................22.获取静态文件的技术:........................................................................................................23.静态文件的生成策略:.........................................................................................................24.静态文件名称目录设计原则:.............................................................................................35.静态文件中的链接换为静态链接策略:............................................................................36.web容器策略和模板页面管理策略:................................................................................37.全文检索页面静态原则:..................................................................................................3目的静态化是我们网站的一个必须要做得,且不说要所有页面实现静态化,但是至少首页和一些频道页是必须要做的,否则像首页有很多信息块组成,每个信息块对应不同的表信息,大批量的查询数据库后才能组成整个首页,性能是很难有保证的,所以对这些大页面(像首页、频道页这些很多信息块组成的页面)是必须要实现静态化的。对于一些大网站访问量高的所有页面都是静态的(包括概览页面和细缆页面),这样能保证高性能和缓解数据库压力。所以我们的最终目标也要实现全部静态化。这个文档就对通用航空网站的静态化做得设计思路,这个设计写的比较简略,主要是总体思路和一些关键点的思路。在开发之前还需要更详细的设计文档(数据表的设计等)。可借鉴网站的静态化方案我总结了下必联采购网()和农博网()这两个网站的静态化实现方案。目前必联采购网只是首页和一些频道页实现了静态化,由于概览页含有一些搜索功能没有无法实现静态化,细缆页面由于权限问题也没有实现静态化。所以静态化实现的就比较简单,主要是一个独立的静态发布定时程序将固定的一些页面(前面提到的首页和一部分频道页)生成静态文件,采用的httpclient访问动态url后,将返回流写入静态文件。农博网实现了全静态化,从首页、频道页、概览页、细览页全部是静态文件,我们的通用航空网站和农博网的整体思路和结构是很类似的(比方说我们也会采用后台发布信息,前台显示,很多信息块组成,而不是像ebnew那样从各个系统同步数据过来。),只不过是业务内容不同而已,所以我们可以借鉴农博网的设计思路。农博网采用的是freemarker实现静态化,将动态的模板转化成静态的页面信息,其中细缆页面时即时产生的静态页面,概览页面和频道页都是定时生成的静态页面,避免在概览页面生成静态文件的时候,细缆页面的静态文件还没有生成而造成问题。细缆的静态路径是存储在相应的信息表中(比方新闻表加上静态URL字段),在生成概览页面的时候对应上相应的细缆静态URL,频道页中的概览页面的静态URL是写死的。由于概览页面也实现静态化,所以页数做了限定,只显示前20页,也就只对前20页做了静态化。全部静态化后就可以只访问apache不需要通过tomcat了。通用航空网站静态化方案:1.整体设计目标:对于我们自己的系统,我觉得把静态化就做到底,也就是全部静态化,我估计全部静态化和部分静态化的工作量也不会差太多,所以不如做到底,实现全部静态化。如果部分静态化之后再改更麻烦。我们的网站是具备全部静态话的条件,首页和频道页就不说了,概览页是不需要搜索功能的,现在的网站都是这样;细览页面也没有什么权限的限制。2.获取静态文件的技术:我们预计的架构中采用velocity做模板(vm开发很熟练呵呵),所以就不能用freemarker读动态模板生成静态页面了,可以采用velocity模板引擎生成静态文件,或者使用httpclient插件生成静态文件,也可以是用其他生成静态页面的技术(比如XMLHTTP、FSO等等,网上查的,我个人觉得生成静态页面无非就像浏览器一样读取动态url得到静态显示,应该都是服务器端转化好的,网站静态化就是提供出生成静态文件的接口,这样指定出具体动态文件或者动态文件URL根据这个接口产生静态文件)。对于各种生成静态文件的技术或者说插件,我觉得我们就采用httpclient、以来比较熟悉(必联生成静态文件方式,代码都有呵呵),二来比较灵活(如果是用velocity模板引擎的话,如果有其他类型的页面比如jsp就不行了,再比如换了页面类型等情况)。3.静态文件的生成策略:静态文件的生成策略:首页和频道页、概览页定时生成(这些页面延时几分钟是没问题的),细览页面实时生成(避免生成概览静态是细缆还没生成造成问题)。对于细缆页面在后台发布信息的时候实时调用生成静态页面的接口,产生静态文件,并将细缆页面的静态URL存入到相应的数据表的相应记录中,修改的时候也重新生成修改,删除的时候同时删除静态文件再删除记录。4.静态文件名称目录设计原则:静态文件名称目录设计原则:对于频道页和概览页我们采用固定目录和固定静态名,每次定时生成静态页面的时候就覆盖,开始的时候我怕出现用户点击那一刻后台覆盖静态文件会出现问题,经过了解前辈的经验这种问题没有出现过。这样做的好处是避开了频道和概览静态文件的管理,简化开发。对于细缆页面的静态文件的目录原则,也使用简单比较简单的设计,我看了很多大网站就是使用日期规则生成目录,比方说今天产生的细缆页面就放在20111124文件夹下,明天产生的静态文件就放在20111125文件夹下,这样浅层的目录结构是有利于搜索引擎搜索的,类似伪静态的目的是一样的。而且这些文件的静态URL是存入到数据库中对应信息记录的,怎么组织都是没问题的。细缆静态文件的名称可以采用总流水号(多个模块采用一个流水号、如果文件目录是按天划分的也可以每天从1开始、也可以一直流水递增这样还能看到总数量),或者模块名+主键id的形式。5.静态文件中的链接换为静态链接策略:在生成静态文件时、静态文件中的链接也需要是静态URL,如果是概览页面生成静态文件的时候我们需要把所有细缆的静态URL的从数据库中取出,并展现在概览页面。对于频道页或者首页生成静态页面的时候由于概览页面和频道页的静态页面目录结构和文件名是固定的就写死在里面。6.web容器策略和模板页面管理策略:实现全部静态化后用户的点击网站后的所有链接就可以脱离tomcat、走apache就可以了、性能会很高。Tomcat只是httpclient生成静态文件的时候用,另外就是维护人员在发布信息、维护模板、预览页面时走tomcat,开发测试修改调试的时候也走tomcat。开始我琢磨着这样设计对于开发人员不方便,因为每次修改调试还要等静态页面发布完后才能看到结果,咨询了下别人的网站,其实网站的后台是需要有模板页面管理的(包括首页、频道页、概览页、也可以包括细缆页但是不必要),管理里面会有预览功能、预览功能是打开动态链接的可以实时的查看调试。有了这个功能修改调试页面会很方便,这个如何设计就不放在静态设计里了。7.全文检索页面静态原则:对于我们的网站肯定要有个总得搜索功能,使用全文检索,检索出来的结果页面使用动态页面,这个页面不可能弄成静态的,这时一个变化的页面,结果页面中的细缆链接使用静态的,由于非全文检索的概览页面我们使用的静态页面,不能看到整个历史,那么用户只能通过全文检索得到整个历史的查询,弥补静态概览页面的限制。总体思路就这些,具体细节到时开发前再做设计。
本文标题:通用航空网站静态化设计方案
链接地址:https://www.777doc.com/doc-2018108 .html