一种实现动态页面静态化的方法和系统的制作方法

文档序号:6615716阅读:175来源:国知局
专利名称:一种实现动态页面静态化的方法和系统的制作方法
技术领域
本发明涉及动态万维网(Web)页面的静态化处理技术,尤其涉及一种实 现动态页面静态化的方法和系统。
背景技术
目前,随着互联网技术的深入发展,互联网应用程序的功能性和复杂性也 曰益提高,因此,对于互联网应用程序性能的要求也越来越高。为了提高互联 网应用程序的性能,可以釆用生成计算机动态Web页面的静态化页面的方法来 提高互联网访问速度,降低服务器运算负荷。
现有技术中,实现动态页面静态化的方法根据与运行期的关系可分为两种
(1) 非运行期的静态页面静态化方法
该方法中,管理员在网站后台发布新内容的同时,生成相应内容的静态页 面,例如2007年10月1日,管理员通过后台管理界面录入一篇文章后,立 刻生成地址为http:〃www.yoursite.com/tech/2007/10/01/001.html的静态页面,并 同步更新相关索引页上的链接。这样,用户在后期访问时,均直接访问该静态 页面,由于所述静态页面在访问之前已存在并存放于指定地址,因此,该方法 称为非运行期的静态页面静态化方法。
(2) 运行期的动态页面静态化方法
与上述非运行期的静态页面的静态化方法的主要区别在于应用程序是否 能自动生成并更新与动态页面相关联的静态化页面。例如,申请号为20058002 5卯3.4、发明名称为《基于模板的网页动态生成方法、程序和系统》、申请人为 西门子公司的专利申请中提供了 一种基于模板的网页动态生成方法,该方法能 为用户提供静态化网页进行浏览,原理为基本页面包含静态页面内容和动态
内容组件,动态内容组件同时链接到一数据文件和一模板。当用户访问该页面 时,分别解析所述数据文件和所述模板,并将解析结果作为动态内容组件填充 到对应的基本页面中,形成用户所浏览的静态网页。但是,当多个页面同时调 用同一数据时,因为页面不同,相应的,调用所述数据的模板不同,故需使用 大量设置进行调整,降低了工作效率。
上述两种页面静态化的方法在内容管理系统比较简单的情况下均非常适 用。但是,对于一个关系比较复杂的网站来说,页面之间的逻辑引用关系也是 较为复杂的问题。例如, 一条新闻要同时出现在新闻首页和相关的三个新闻专 题中,在静态缓存模式下,每发一篇新文章,除了这篇新闻内容本身的页面外, 还需要系统通过触发器生成多个新的相关的静态化页面,这些相关逻辑的触发 就会成为内容管理系统中最为复杂的部分之一。
通过非运行期页面静态化的方式,对于以前生成的静态化页面的内容很难 修改,用户在访问所述静态化页面时,新的模板无法生效。中国专利申请号为
200580025903.4的发明所述的现有技术,虽然能基本解决多页面相关联问题, 但在大量页面调用同一数据时,需使用大量设置进行调整,降低了工作效率。
以上为现有技术中实现动态页面静态化所使用的方法,而实现上述方法需 使用相应的具体技术,例如服务器端嵌入(SSI)技术以及Apache服务器中 的统一资源定位符(URL)重写转向(Rewrite)技术等。下面将对SSI技术以 及URL Rewrite技术进行详细描述。
SSI技术称为服务器端嵌入技术,是一种类似于活动服务器页面(ASP)的 基于服务器的网页制作技术。SSI技术的实质是将浏览内容发送到客户端浏览 器之前,将文本、图形或应用程序信息变为用SSI技术所解析的语句,并包含 到网页中。
例如,下面为一段包含SSI语句的代码 〈html〉
〈head〉 〈 title 〉 my first SSI page 〈/title 〉 〈/head〉 〈body〉
欢迎您(于〈! - _ # echo var="date—local"--〉)访问本网站。 〈/html〉
标记在上面文档中的"〈!--# _ -〉"为SSI语句,其结构表明了 SSI 命令会被服务器翻译执行,将翻译的结果发送到客户端。用户可以在浏览器中 用"查看—源文"观察源代码 〈html〉
〈head〉 〈 title 〉 my first SSI page 〈/title 〉 〈/head〉 〈body 〉
欢迎您(于dec 06 1999)访问本网站。 〈/html〉
通过该源代码可以看出,文档中的超文本置标语言(html)被直接传到了 客户端,而SSI命令得到了执行。SSI代码"〈!--# --〉"在客户端是不可 见的,客户端只能看到它执行的效果"dec 06 1999"。
SSI技术将一个网站的基本结构放在几个简单的HTML页面框架文件中, 而网站中各个HTML页面内可变化的内容用SSI技术提供的include命令得以 执行,这些SSI技术提供的include命令包含的片断,称之为组件。使用SSI技 术建立相应的HTML页面模版以及组件后,只需将文本传到服务器,则程序将 按照页面模板和include命令调用的组件内容自动组装并生成HTML网页。
关于URL Rewrite技术,是Apache服务器用来实现页面网络地址重定向 的技术。具体的,Apache服务器中的rewrite模块,提供一个基于规则的rewri te引擎,以实时重写发送到Apache的请求URL。 rewrite模块支持任意数目的 重写规则,以及附加到一条规则上的任意数目的规则条件,从而可提供一套非 常灵活和功能强大的URL处理机制。使用URL Rewrite技术,可以将动态请 求的网络地址按照既有的规则,转换为静态页面网络地址。例如网站页面是
ewrite技术进行转换后,可转换为对应的静态化页面相应的地址http://www.you rdomain.com/news/123.html来进行访问。

发明内容
有鉴于此,本发明的主要目的在于提供一种实现动态页面静态化的方法和 系统,便于修改页面内容,能提高页面的生成效率,且使得网站管理更为简单。
为达到上述目的,本发明的技术方案是这样实现的
本发明提供了一种实现动态页面静态化的方法,页面包括页面框架以及一 定数量的组件,该方法包括
A、 确定用户所访问页面中所需使用的组件,并生成各组件对应的静态化 文件路径;
B、 确定生成的组件对应的静态化文件路径下不存在相应静态化文件时, 生成该组件的动态化内容;
C、 确定生成的组件的动态化内容需进行静态化处理时,生成该动态化内 容对应的静态化文件。
其中,步骤B进一步包括确定生成的组件的静态化文件路径下存在相应 的静态化文件时,直接调用所述静态化文件。
生成组件的动态化内容之后,该方法进一步包括根据得到的每个组件对 应的静态化文件或动态化内容,使用所述页面框架组装成页面。
生成所述静态化文件后,该方法进一步包括将所述静态化文件保存在该 静态化文件对应的组件所对应的静态化文件路径下。
本发明同时提供了一种实现动态页面静态化的系统,该系统包括页面组 件模块、控制模块以及应用模块,其中,
页面组件模块,用于确定用户所访问的页面所需使用的组件,并将所述组 件的相关信息发送给控制模块;
控制模块,用于根据接收到的所述组件的相关信息生成该组件的静态化文 件路径,之后,向资源模块发送查询请求;还用于接收到控制模块反馈文件不 存在的信号时,向应用模块发送生成动态化内容的请求;
资源模块,用于接收到控制模块发来的查询请求后,确定在相应的路径下
不存在静态化文件时,向控制模块反馈文件不存在的信号;
应用模块,用于接收到控制模块发来的所述请求后,将相应组件的静态化 文件路径转换为动态程序访问地址,根据所述地址得到组件对应的动态化内容, 并将所述动态化内容发送给控制模块。
其中,资源模块进一步用于确定相应的路径下存在静态化文件时,将所 述静态化文件发送给页面组件模块;
控制模块进一步用于将接收到的应用模块发来的所述动态化内容发送给 页面组件模块;
相应的,页面组件模块进一步用于将接收到的所述动态化内容以及所述 静态化文件,根据页面框架组装成页面。
控制模块进一步用于确定接收到的所述动态化内容需要进行静态化处理 时,将通过静态化处理得到的相应的静态化文件发送给资源模块;
相应的,资源模块进一步用于在相应的静态化文件路径下存储接收到的 静态化文件。
页面组件模块进一步用于将组装得到的页面发送给用户界面模块; 相应的,该系统进一步包括用户界面模块,用于将接收到的所述页面向
用户显示;还用于确定用户需访问的页面,并将所述页面信息发送给页面组件模块。
本发明所提供的动态页面静态化方法和系统,将页面分为页面框架以及一 定数量的组件,当用户需要使用某个页面时,调用每个组件相对应的静态化文 件或动态化内容,便于页面修改;而且,本发明只在所述组件不存在对应的静 态化文件时,才生成所述组件的动态化内容,且在所述动态化内容可以进行静 态化处理时,动态生成相应的静态化文件进行保存,下次使用该组件时即可直 接调用对应的静态化文件,从而提高了页面的生成效率,且无须进行大量设置, 使得网站管理更为简单;本发明判断所述动态化内容是否需要进行静态化处理 以及相应生成所述静态化文件,与页面的组装分线程执行,提高了页面的生成 效率和安全性。


图1为本发明动态页面静态化的方法流程示意图; 图2为本发明动态页面静态化的系统结构示意图。
具体实施例方式
本发明的基本思想是网络页面由页面框架以及一定数量的组件构成,当 用户访问某个页面时,首先确定该页面所需使用的组件;之后,根据生成的该 组件对应的静态化文件地址查找是否存在该组件的静态化文件,如果存在,则
直接调用该静态化文件,如果不存在,则生成该组件对应的动态化内容;最后,
将得到的每个组件对应的静态化文件、或动态化内容,利用页面模版组装成页 面。
以下通过具体实施例结合附图详细说明本发明动态页面静态化方法和系统
的实现。
图1为本发明动态页面静态化的方法流程示意图,如图1所示,该方法包

步骤101:用户访问某个页面时,确定该页面所需使用的组件。 在实际应用中,可以使用SSI技术实现HTML页面。此时,该页面由HTML
页面框架以及页面框架中可变化的内容组成,所述可变化的内容称为组件,使
用SSI技术中的include命令进行调用,所需执行的命令语句称为组件占位符。
相应的,步骤101具体为
用户访问使用SSI技术实现的HTML页面,确定该页面所需使用的组件。 其中,具体如何确定页面中需使用的组件可使用公知技术,这里不再赘述。
同时,所述确定组件需确定的信息可以包括组件名称、实例编号以及中文名称等。
其中,在最初设定每个页面对应的页面框架以及组件时,每个页面所需使 用的组件的数量可以根据具体情况自主设定,可以设置为不小于1的任意整数。 步骤102:根据一定的规则,生成每个组件的静态化文件路径。
例如,可以根据URL Rewrite规则,分别生成步骤101中每个组件的静态 化文件路径。该方法在Apache服务器上实现,相应的每个组件通过SSI命令向 Apache服务器发送请求,所述请求可以为/comp-ID-Name,其中,ID为组件 类型名称标识,Name为组件实例名称;Apache服务器接收到所述请求后,使 用URL Rewrite规则,根据所述请求,生成组件对应的静态化文件路径。其中, 具体如何使用URL Rewrite规则生成静态化文件路径属于公知技术,这里不再 赘述。
步骤103:通过步骤102中生成的所述路径,分别查找所述路径对应的目 标目录下是否存在组件的静态化文件,如果存在,直接调用该组件对应的静态 化文件;如果不存在,将所述静态化文件路径转换为动态程序访问地址,根据 所述地址得到组件对应的动态化内容,同时,执行步骤105。
其中,由于在步骤102中所生成的为每个组件的静态化文件路径,因此, 本步骤为循环操作,需分别确定每个所述静态化文件路径下是否存在对应组件 的静态化文件,并根据确定的结果进行相应操作。
另外,所述将静态化文件路径转换为动态程序访问地址,根据所述地址得 到组件对应的动态化内容可以为Apache服务器使用URL Rewrite规则,将静 态化文件路径转换为后端应用程序服务器,例如JBoss服务器可以解析执行的 动态程序访问地址;之后,Apache服务器通过连接器,将该访问地址交由后端 应用程序服务器执行,得到相应的动态化内容后,后端应用程序服务器将所述 内容通过连接器传回Apache服务器。其中,具体如何使用URL Rewrite规则将 静态化文件路径转换为动态程序访问地址,以及后端应用程序服务器如何解析 得到所述动态化内容属于公知技术,这里不再赘述。
步骤104:根据得到的每个组件对应的静态化文件、或动态化内容,使用 页面框架,组装成页面返回给用户,结東当前处理流程。
根据得到的每个组件对应的静态化文件、或动态化内容,使用HTML页面 框架,组装成HTML页面返回给用户,结束当前处理流程。
其中,具体如何进行页面的组装属于公知技术,这里不再赘述。
步骤105:判断得到的动态化内容是否需要进行静态化处理,如果需要, 则执行步骤106,否则,结東当前处理流程。
在本步骤中,当该方法在实际应用中以实现动态页面静态化的系统实现时, 可以在系统中预先设置需要静态化处理的组件,例如保存在可扩展标识语言 (XML)文档中,系统通过解析所述XML文档,即可判断所查询的组件是否 需要进行静态化处理。其中,具体如何解析所述XML文档属于公知技术,这 里不再赘述。同时,具体如何判断所述动态化内容是否需要进行静态化处理也 可以使用其他相应的公知技术,这里不再赘述。
步骤106:将得到的组件的动态化内容进行静态化处理,得到静态化文件, 之后,根据步骤102中生成的该组件对应的静态化文件路径保存该静态化文件, 结束当前处理流程。
其中,具体如何进行动态化内容的静态化处理、以及如何将静态化文件保 存到相应的路径下属于公知技术,这里不再赘述。
图2为本发明动态页面静态化的系统结构示意图,如图2所示,该系统包 括用户界面模块210、页面组件模块220、控制模块230、资源模块240以及 应用模块250,其中,
用户界面模块210,用于确定用户需访问的页面,并将所述页面信息发送 给页面组件模块220;还用于向用户显示组装得到的页面。
页面组件模块220,用于确定用户所访问的页面所需使用的组件,并将所 述组件的相关信息发送给控制模块230;还用于将接收到的控制模块230发来 的动态化内容以及资源模块240发来的静态化文件,根据页面框架组装成页面, 发送给用户界面模块210。
控制模块230,用于接收到所述组件的相关信息后,根据一定的规则生成 该组件的静态化文件路径,之后,向资源模块240发送查询请求,以查询在所 述静态化文件路径下是否存在该组件的静态化文件,当控制模块230反馈不存 在的信号时,向应用模块250发送生成动态化内容的请求,当接收到应用模块 250反馈的相应的组件的动态化内容时,将所述内容发送给页面组件模块220,
同时,判断该动态化内容是否需要静态化,如需要,将所述动态化内容通过静 态化处理得到静态化文件后,将所述静态化文件发送给资源模块240进行保存。
资源模块240,用于接收到控制模块230发来的查询请求后,在相应的路 径下查询是否存在静态化文件,如存在,则直接将查询得到的静态化文件发送 给页面组件模块220,如不存在,则向控制模块230反馈文件不存在的信号; 还用于接收到所述静态化文件时,在相应的静态化文件路径下保存所述静态化 文件。
应用模块250,用于接收到控制模块230发来的所述请求后,将相应组件 的静态化文件路径转换为可以解析执行的动态程序访问地址,根据所述地址得 到组件对应的动态化内容,并将所述内容发送给控制模块230。
在图2所述系统的实现中,对于各个模块的部署可以使用如下所述的部署 方法用户界面模块210、页面组件模块220以及资源模块240部署在Apache 服务器上;控制模块230中的进行组件的静态化文件路径生成的部分部署在 Apache服务器,控制模块230通过动态解析生成动态化内容的部分部署在执行 动态程序的Jboss服务器上;应用模块部署在Jboss服务器上。但是上述部署方 法只是其中的一种方法,相关技术人员可以根据实际需要,在实际应用过程中 做适应性改变、或相应的部署。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1、一种实现动态页面静态化的方法,其特征在于,页面包括页面框架以及一定数量的组件,该方法包括A、确定用户所访问页面中所需使用的组件,并生成各组件对应的静态化文件路径;B、确定生成的组件对应的静态化文件路径下不存在相应静态化文件时,生成该组件的动态化内容;C、确定生成的组件的动态化内容需进行静态化处理时,生成该动态化内容对应的静态化文件。
2、 根据权利要求l所述的实现动态页面静态化的方法,其特征在于,步骤 B进一步包括确定生成的组件的静态化文件路径下存在相应的静态化文件时,直接调用 所述静态化文件。
3、 根据权利要求2所述的实现动态页面静态化的方法,其特征在于,生成 组件的动态化内容之后,该方法进一步包括根据得到的每个组件对应的静态化文件或动态化内容,使用所述页面框架 组装成页面。
4、 根据权利要求1至3任一项所述的实现动态页面静态化的方法,其特征 在于,生成所述静态化文件后,该方法进一步包括将所述静态化文件保存在该静态化文件对应的组件所对应的静态化文件路 径下。
5、 一种实现动态页面静态化的系统,其特征在于,该系统包括页面组件 模块、控制模块以及应用模块,其中,页面组件模块,用于确定用户所访问的页面所需使用的组件,并将所述组 件的相关信息发送给控制模块;控制模块,用于根据接收到的所述组件的相关信息生成该组件的静态化文 件路径,之后,向资源模块发送查询请求;还用于接收到控制模块反馈文件不存在的信号时,向应用模块发送生成动态化内容的请求;资源模块,用于接收到控制模块发来的查询请求后,确定在相应的路径下 不存在静态化文件时,向控制模块反馈文件不存在的信号;应用模块,用于接收到控制模块发来的所述请求后,将相应组件的静态化 文件路径转换为动态程序访问地址,根据所述地址得到组件对应的动态化内容,并将所述动态化内容发送给控制模块。
6、 根据权利要求5所述的系统,其特征在于,资源模块进一步用于确定相应的路径下存在静态化文件时,将所述静态化文件发送给页面组件模块;控制模块进一步用于将接收到的应用模块发来的所述动态化内容发送给页面组件模块;相应的,页面组件模块进一步用于将接收到的所述动态化内容以及所述静态化文件,根据页面框架组装成页面。
7、 根据权利要求5或6所述的系统,其特征在于,控制模块进一步用于 确定接收到的所述动态化内容需要进行静态化处理时,将通过静态化处理得到 的相应的静态化文件发送给资源模块;相应的,资源模块进一步用于在相应的静态化文件路径下存储接收到的 静态化文件。
8、 根据权利要求6所述的系统,其特征在于,页面组件模块进一步用于 将组装得到的页面发送给用户界面模块;相应的,该系统进一步包括用户界面模块,用于将接收到的所述页面向 用户显示;还用于确定用户需访问的页面,并将所述页面信息发送给页面组件 模块。
全文摘要
本发明提供了一种实现动态页面静态化的方法,该方法包括A.确定用户所访问的页面中所需使用的组件;B.确定生成的组件的静态化文件路径下不存在相应的静态化文件时,生成该组件的动态化内容;C.确定生成的组件的动态化内容需进行静态化处理时,生成该动态化内容对应的静态化文件。本发明同时提供了一种实现动态页面静态化的系统,该方法和系统便于修改静态化页面内容,提高了页面的生成效率,且使得网站管理更为简单。
文档编号G06F17/30GK101183395SQ20071030414
公开日2008年5月21日 申请日期2007年12月25日 优先权日2007年12月25日
发明者金 单, 雨 张, 迎 李, 杜亦舒, 赵宝刚 申请人:北京中企开源信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1