动态页面静态化的装置和方法

文档序号:6631793阅读:123来源:国知局
动态页面静态化的装置和方法
【专利摘要】本发明提供了一种动态页面静态化的装置,包括:请求接收单元,用于接收用户发送的请求,进行接管和重定向处理;请求执行单元,用于收到重定向的用户请求后,根据该请求的类型,通过服务器端程序执行不同类型的请求;执行结果展现单元,用于执行请求后,反馈执行情况,并展现执行结果。本发明还提供了一种动态页面静态化的方法。通过本发明的技术方案,可以在现有的动态页面静态化定义语言支持的描述定义方式基础上,充分利用单对象类型元数据和文档描述类型完成多对象类型元数据的动态页面静态化,建立多对象类型元数据参与的面向对象类语言动态页面静态化的通用、统一静态化思路。
【专利说明】动态页面静态化的装置和方法

【技术领域】
[0001]本发明涉及计算机【技术领域】,具体地,涉及一种动态页面静态化的装置和一种动态页面静态化的方法。
[0002]

【背景技术】
[0003]随着互联网越来越普及,Web应用产品越来越多,动态页面技术也越来越成熟,相关的动态Web页面也越来越多,在Web形态的ERP产品中有众多的动态页面(数据可能实时变化的页面),为了提高Web应用的性能以及提高页面访问速度,需要将Web应用中的动态页面静态化。
[0004]现有技术实现页面静态化分为两种:
(1)非运行期预先生成静态页面的动态页面静态化
该方法,是由Web应用站点管理人员在发布Web应用时,同时点击发布生成静态页面,这样用户访问时访问的就是已经生成好的静态页面,由于在Web应用维护时就生成了静态页面,所以称为非运行期预先生成的页面静态化。
[0005]⑵运行期后台模拟动态页面静态化
与上述非运行期预先生成静态页面方法的区别在于:应用程序在后台接管页面请求,代码判断如果没有已存在的静态文件则生成静态文件,如果有则访问静态文件。例如:专利号为200710304143、发明名称为《一种实现动态页面静态化的方法和系统》的专利中提供了一种基于服务器端嵌入(SSI)技术以及统一资源定位符(URL)重写转向(Rewrite)技术的动态页面静态化方法,通过代码实现SSI及Rewrite达到当静态页面不存在时动态生成,存在时访问该静态界面。
[0006]上述两种方式在页面内容简单不变的情况下非常适用,但是对于一个复杂的Web应用产品(比如ERP产品,包含财务、供应链、制造、CRM等众多包含表单录入数据的应用),并且Web应用中页面的数据变化非常频繁时,达不到动态页面静态化所要的效果。
[0007]现有的动态页面静态化一般是在非运行期预先生成静态页面或者运行期后台模拟生成静态页面。
[0008]现有技术方案建立流程如下图:
⑴非运行期预先生成静态页面的动态页面静态化流程图,图1。
[0009]⑵运行期后台模拟动态页面静态化流程图,见图2。
[0010]现有技术方案中,动态页面静态化存在下面几个问题:(1)对于以前生成的静态化页面的内容很难修改,(2)用户在访问所述静态化页面时,新的数据或页面修改无法生效。
[0011]因此,需要一种新的动态页面静态化技术,可以在现有的动态页面静态化定义语言支持的描述定义方式基础上,充分利用单对象类型元数据和文档描述类型完成多对象类型元数据的动态页面静态化,建立多对象类型元数据参与的面向对象类语言动态页面静态化的通用、统一静态化思路。
[0012]


【发明内容】

[0013]本发明正是基于上述问题,提出了一种新的动态页面静态化技术,可以在现有的动态页面静态化定义语言支持的描述定义方式基础上,充分利用单对象类型元数据和文档描述类型完成多对象类型元数据的动态页面静态化,建立多对象类型元数据参与的面向对象类语言动态页面静态化的通用、统一静态化思路。
[0014]有鉴于此,本发明提出了一种动态页面静态化的装置,包括:请求接收单元,用于接收用户发送的请求,进行接管和重定向处理;请求执行单元,用于收到重定向的用户请求后,根据该请求的类型,通过服务器端程序执行不同类型的请求;执行结果展现单元,用于执行请求后,反馈执行情况,并展现执行结果。在该技术方案中,可以通过服务器端对用户发送请求的接管和重定向处理,将动态页面分离成静态HTML文件(布局、控件、样式)和动态数据两部分,对不同请求进行分类处理,可以应对数据不断变化时,非数据部分内容的纯静态化。
[0015]在上述技术方案中,优选地,所述请求接收单元,具体包括:服务器接收请求模块,用于接收用户发送的请求;请求接管及重定向模块,用于应用程序接管请求,并将请求重定向到服务器端的控制模块;和/或,所述请求执行单元,具体包括:请求类型判断模块,用于收到请求后,判断当前请求的类型;请求类型判断结果执行模块,用于根据对当前请求类型的判断结果,执行相应的请求;和/或,所述执行结果展现单元,具体包括:获取动态数据触发模块,用于获取静态布局文件后,返回静态布局文件到客户端并呈现静态布局文件及执行布局文件中的相关代码,执行相关代码,触发获取动态数据的操作;缓存数据判断模块,用于客户端程序判断是否存在数据的缓存;缓存数据判断判断结果执行模块,用于根据缓存数据判断结果,对相应请求的执行结果进行处理。在该技术方案中,通过将动态页面分离成可静态化不变的部分和动态数据部分来实现最终的页面静态化,可以从根本上解决同一页面数据不断变化的场景。
[0016]在上述技术方案中,优选地,所述请求类型判断结果执行模块,进一步包括:获取数据的请求执行子模块,用于在当前类型是获取数据的请求时,通过服务器端程序执行获取请求逻辑,并返回数据;以及,将返回的数据展现到页面中,并与获取数据请求执行结果呈现的布局文件一起组合成完整的页面展现;和/或,获取布局文件的请求执行子模块,用于在当前类型是获取布局文件的请求,通过服务器程序判断是否已经存在静态布局文件;以及根据静态布局文件的判断结果,执行获取布局文件的请求。在该技术方案中,可以在实现传统动态页面静态化基础上,兼顾实现页面数据频繁变化时的页面静态化,并且将页面布局元数据化以及做到了页面布局的缓存。
[0017]在上述技术方案中,优选地,所述获取数据的请求执行子模块,更进一步包括:请求逻辑获取及数据返回子模块,用于在当前类型是获取数据的请求时,通过服务器端程序执行获取请求逻辑,并返回数据;数据展现及结果输出子模块,用于将将返回的数据展现到页面中,并与获取数据请求执行结果呈现的布局文件一起组合成完整的页面展现;和/或,所述获取布局文件的请求执行子模块,更进一步包括:静态布局文件判断子模块,用于在当前类型是获取布局文件的请求,通过服务器程序判断是否已经存在静态布局文件;静态布局文件判断结果执行子模块,用于根据静态布局文件的判断结果,执行获取布局文件的请求;再进一步地,所述静态布局文件判断结果执行子模块,再进一步包括:静态布局文件获取及结果输出子模块,用于在存在静态布局文件,获取静态布局文件,并将获取的静态布局文件展现到页面中;和/或,所述静态布局文件判断结果执行子模块,再进一步还包括:静态布局文件生成及缓存子模块,用于在不存在静态布局文件,根据元数据配置调用代码编译引擎动态生成静态布局文件,生成后缓存静态布局文件,并将生成的缓存静态布局文件展现到页面中。在该技术方案中,根据元数据配置调用代码编译引擎动态生成静态布局文件,该静态布局文件是元数据,是动态页面布局的一种抽象描述,可以存储在数据库中,有利于实现非数据部分内容的纯静态化。
[0018]在上述技术方案中,优选地,所述缓存数据判断判断结果执行模块,进一步包括:页面展现及结果输出子模块,用于在存在缓存数据时,将数据展现到页面中,并与相应请求的执行结果呈现的布局文件一起组合成完整的页面展现;和/或,所述缓存数据判断判断结果执行模块,进一步还包括:获取数据请求重新发送子模块,用于在不存在缓存数据时,返回请求接收单元,向服务器端发送获取数据请求,等待服务器端对该获取数据请求的接管和重定向处理。在该技术方案中,可以通过将动态页面分离成可静态化不变的部分和动态数据部分来实现最终的页面静态化,且能通过页面实时显示相应请求的执行情况。
[0019]根据本发明的又一个方面,还提出了一种动态页面静态化的方法,包括:步骤202:服务器端接收用户发送的请求,进行接管和重定向处理;步骤204:服务器控制模块收到重定向的用户请求后,根据该请求的类型,通过服务器端程序执行不同类型的请求;步骤206:服务器端程序执行请求后,反馈执行情况,并展现执行结果。在该技术方案中,可以通过服务器端对用户发送请求的接管和重定向处理,将动态页面分离成静态HTML文件(布局、控件、样式)和动态数据两部分,对不同请求进行分类处理,可以应对数据不断变化时,非数据部分内容的纯静态化。
[0020]在上述技术方案中,优选地,所述步骤202,具体包括:步骤302:服务器端接收用户发送的请求;步骤304:服务器端应用程序接管请求,并将请求重定向到服务器端的控制模块;和/或,所述步骤204,具体包括:步骤402:服务器控制模块收到请求后,判断当前请求的类型;步骤404:根据对当前请求类型的判断结果,执行相应的请求;和/或,所述步骤206,具体包括:步骤902:获取静态布局文件后,返回静态布局文件到客户端并呈现静态布局文件及执行布局文件中的相关代码,执行相关代码,触发获取动态数据的操作;步骤904:客户端程序判断是否存在数据的缓存;步骤906:根据缓存数据判断结果,对相应请求的执行结果进行处理。在该技术方案中,通过将动态页面分离成可静态化不变的部分和动态数据部分来实现最终的页面静态化,可以从根本上解决同一页面数据不断变化的场景。
[0021]在上述技术方案中,优选地,所述步骤404,进一步包括:步骤502:在当前类型是获取数据的请求时,通过服务器端程序执行获取请求逻辑,并返回数据;以及,步骤504:将返回的数据展现到页面中,并与获取数据请求执行结果呈现的布局文件一起组合成完整的页面展现;和/或,所述步骤404,进一步还包括:步骤602:在当前类型是获取布局文件的请求,通过服务器程序判断是否已经存在静态布局文件;以及,步骤604:根据静态布局文件的判断结果,执行获取布局文件的请求。在该技术方案中,可以在实现传统动态页面静态化基础上,兼顾实现页面数据频繁变化时的页面静态化,并且将页面布局元数据化以及做到了页面布局的缓存。
[0022]在上述技术方案中,优选地,所述步骤604,再进一步包括:步骤702:在存在静态布局文件,获取静态布局文件,并将获取的静态布局文件展现到页面中;和/或,所述步骤604,再进一步还包括:步骤802:在不存在静态布局文件,根据元数据配置调用代码编译引擎动态生成静态布局文件,生成后缓存静态布局文件,并将生成的缓存静态布局文件展现到页面中。在该技术方案中,根据元数据配置调用代码编译引擎动态生成静态布局文件,该静态布局文件是元数据,是动态页面布局的一种抽象描述,可以存储在数据库中,有利于实现非数据部分内容的纯静态化。
[0023]在上述技术方案中,优选地,所述步骤906,进一步包括:步骤1002:在存在缓存数据时,将数据展现到页面中,并与相应请求的执行结果呈现的布局文件一起组合成完整的页面展现;和/或,所述步骤906,进一步还包括:步骤1102:在不存在缓存数据时,返回请求接收单元,向服务器端发送获取数据请求,等待服务器端对该获取数据请求的接管和重定向处理。在该技术方案中,可以通过将动态页面分离成可静态化不变的部分和动态数据部分来实现最终的页面静态化,且能通过页面实时显示相应请求的执行情况。
[0024]通过以上技术方案,可以在现有的动态页面静态化定义语言支持的描述定义方式基础上,充分利用单对象类型元数据和文档描述类型完成多对象类型元数据的动态页面静态化,建立多对象类型元数据参与的面向对象类语言动态页面静态化的通用、统一静态化思路。
[0025]

【专利附图】

【附图说明】
[0026]图1示出了现有的非运行期预先生成静态页面的动态页面静态化流程图;
图2示出了现有的运行期后台模拟动态页面静态化流程图;
图3示出了根据本发明的实施例的动态页面静态化的装置的框图;
图4示出了根据本发明的实施例的获取数据的请求执行子模块的原理示意图;
图5示出了根据本发明的实施例的获取布局的请求执行子模块的原理示意图;
图6示出了根据本发明的实施例的动态页面静态化的方法的流程图;
图7示出了根据本发明的实施例的请求接收单元的流程图;
图8示出了根据本发明的实施例的请求执行单元的流程图;
图9示出了根据本发明的实施例的执行结果展现单元的流程图;
图10示出了根据本发明的实施例动态页面静态化的方法的详细流程图。
[0027]

【具体实施方式】
[0028]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0029]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0030]图3示出了根据本发明的实施例的动态页面静态化的装置的框图。
[0031]如图3所示,根据本发明的实施例的动态页面静态化的装置100,包括:请求接收单元102,用于接收用户发送的请求,进行接管和重定向处理;请求执行单元104,用于收到重定向的用户请求后,根据该请求的类型,通过服务器端程序执行不同类型的请求;执行结果展现单元106,用于执行请求后,反馈执行情况,并展现执行结果。在该技术方案中,可以通过服务器端对用户发送请求的接管和重定向处理,将动态页面分离成静态HTML文件(布局、控件、样式)和动态数据两部分,对不同请求进行分类处理,可以应对数据不断变化时,非数据部分内容的纯静态化。
[0032]在上述技术方案中,优选地,请求接收单元102,具体包括:服务器接收请求模块1022,用于接收用户发送的请求;请求接管及重定向模块1024,用于应用程序接管请求,并将请求重定向到服务器端的控制模块;和/或,请求执行单元104,具体包括:请求类型判断模块1042,用于收到请求后,判断当前请求的类型;请求类型判断结果执行模1044,用于根据对当前请求类型的判断结果,执行相应的请求;和/或,执行结果展现单元106,具体包括:获取动态数据触发模块1062,用于获取静态布局文件后,返回静态布局文件到客户端并呈现静态布局文件及执行布局文件中的相关代码,执行相关代码,触发获取动态数据的操作;缓存数据判断模块1064,用于客户端程序判断是否存在数据的缓存;缓存数据判断判断结果执行模块1066,用于根据缓存数据判断结果,对相应请求的执行结果进行处理。在该技术方案中,通过将动态页面分离成可静态化不变的部分和动态数据部分来实现最终的页面静态化,可以从根本上解决同一页面数据不断变化的场景。
[0033]在上述技术方案中,优选地,请求类型判断结果执行模块1044,进一步包括:获取数据的请求执行子模块10442,用于在当前类型是获取数据的请求时,通过服务器端程序执行获取请求逻辑,并返回数据;以及,将返回的数据展现到页面中,并与获取数据请求执行结果呈现的布局文件一起组合成完整的页面展现;和/或,获取布局文件的请求执行子模块10444,用于在当前类型是获取布局文件的请求,通过服务器程序判断是否已经存在静态布局文件;以及根据静态布局文件的判断结果,执行获取布局文件的请求。在该技术方案中,可以在实现传统动态页面静态化基础上,兼顾实现页面数据频繁变化时的页面静态化,并且将页面布局元数据化以及做到了页面布局的缓存。
[0034]在上述技术方案中,优选地,如图4所示,获取数据的请求执行子模块10442,更进一步包括:请求逻辑获取及数据返回子模块104422,用于在当前类型是获取数据的请求时,通过服务器端程序执行获取请求逻辑,并返回数据;数据展现及结果输出子模块104424,用于将将返回的数据展现到页面中,并与获取数据请求执行结果呈现的布局文件一起组合成完整的页面展现;和/或,如图5所示,获取布局文件的请求执行子模块10444,更进一步包括:静态布局文件判断子模块104442,用于在当前类型是获取布局文件的请求,通过服务器程序判断是否已经存在静态布局文件;静态布局文件判断结果执行子模块104444,用于根据静态布局文件的判断结果,执行获取布局文件的请求;再进一步地,静态布局文件判断结果执行子模块104444,再进一步包括:静态布局文件获取及结果输出子模块1044442,用于在存在静态布局文件,获取静态布局文件,并将获取的静态布局文件展现到页面中;和/或,静态布局文件判断结果执行子模块104444,再进一步还包括:静态布局文件生成及缓存子模块1044444,用于在不存在静态布局文件,根据元数据配置调用代码编译引擎动态生成静态布局文件,生成后缓存静态布局文件,并将生成的缓存静态布局文件展现到页面中。在该技术方案中,根据元数据配置调用代码编译引擎动态生成静态布局文件,该静态布局文件是元数据,是动态页面布局的一种抽象描述,可以存储在数据库中,有利于实现非数据部分内容的纯静态化。
[0035]在上述技术方案中,优选地,缓存数据判断判断结果执行模块1066,进一步包括:页面展现及结果输出子模块10662,用于在存在缓存数据时,将数据展现到页面中,并与相应请求的执行结果呈现的布局文件一起组合成完整的页面展现;和/或,缓存数据判断判断结果执行模块1066,进一步还包括:获取数据请求重新发送子模块10664,用于在不存在缓存数据时,返回请求接收单元,向服务器端发送获取数据请求,等待服务器端对该获取数据请求的接管和重定向处理。在该技术方案中,可以通过将动态页面分离成可静态化不变的部分和动态数据部分来实现最终的页面静态化,且能通过页面实时显示相应请求的执行情况。
[0036]图6示出了根据本发明的实施例的动态页面静态化的方法的流程图。
[0037]如图6所示,根据本发明的实施例的动态页面静态化的方法,包括:步骤202:服务器端接收用户发送的请求,进行接管和重定向处理;步骤204:服务器控制模块收到重定向的用户请求后,根据该请求的类型,通过服务器端程序执行不同类型的请求;步骤206:月艮务器端程序执行请求后,反馈执行情况,并展现执行结果。在该技术方案中,可以通过服务器端对用户发送请求的接管和重定向处理,将动态页面分离成静态HTML文件(布局、控件、样式)和动态数据两部分,对不同请求进行分类处理,可以应对数据不断变化时,非数据部分内容的纯静态化。
[0038]在上述技术方案中,优选地,如图7所示步骤202,具体包括:步骤302:服务器端接收用户发送的请求;步骤304:服务器端应用程序接管请求,并将请求重定向到服务器端的控制模块;和/或,如图8所示,步骤204,具体包括:步骤402:服务器控制模块收到请求后,判断当前请求的类型;步骤404:根据对当前请求类型的判断结果,执行相应的请求;和/或,如图9所示,步骤206,具体包括:步骤902:获取静态布局文件后,返回静态布局文件到客户端并呈现静态布局文件及执行布局文件中的相关代码,执行相关代码,触发获取动态数据的操作;步骤904:客户端程序判断是否存在数据的缓存;步骤906:根据缓存数据判断结果,对相应请求的执行结果进行处理。在该技术方案中,通过将动态页面分离成可静态化不变的部分和动态数据部分来实现最终的页面静态化,可以从根本上解决同一页面数据不断变化的场景。
[0039]在上述技术方案中,优选地,步骤404,进一步包括:步骤502:在当前类型是获取数据的请求时,通过服务器端程序执行获取请求逻辑,并返回数据;以及,步骤504:将返回的数据展现到页面中,并与获取数据请求执行结果呈现的布局文件一起组合成完整的页面展现;和/或,步骤404,进一步还包括:步骤602:在当前类型是获取布局文件的请求,通过服务器程序判断是否已经存在静态布局文件;以及,步骤604:根据静态布局文件的判断结果,执行获取布局文件的请求。在该技术方案中,可以在实现传统动态页面静态化基础上,兼顾实现页面数据频繁变化时的页面静态化,并且将页面布局元数据化以及做到了页面布局的缓存。
[0040]在上述技术方案中,优选地,步骤604,再进一步包括:步骤702:在存在静态布局文件,获取静态布局文件,并将获取的静态布局文件展现到页面中;和/或,步骤604,再进一步还包括:步骤802:在不存在静态布局文件,根据元数据配置调用代码编译引擎动态生成静态布局文件,生成后缓存静态布局文件,并将生成的缓存静态布局文件展现到页面中。在该技术方案中,根据元数据配置调用代码编译引擎动态生成静态布局文件,该静态布局文件是元数据,是动态页面布局的一种抽象描述,可以存储在数据库中,有利于实现非数据部分内容的纯静态化。
[0041]在上述技术方案中,优选地,步骤906,进一步包括:步骤1002:在存在缓存数据时,将数据展现到页面中,并与相应请求的执行结果呈现的布局文件一起组合成完整的页面展现;和/或,步骤906,进一步还包括:步骤1102:在不存在缓存数据时,返回请求接收单元,向服务器端发送获取数据请求,等待服务器端对该获取数据请求的接管和重定向处理。在该技术方案中,可以通过将动态页面分离成可静态化不变的部分和动态数据部分来实现最终的页面静态化,且能通过页面实时显示相应请求的执行情况。
[0042]本发明的技术方案,涉及动态页面静态化处理技术,尤其在动态Web页面静态化领域有很广泛的应用。
[0043]本发明的技术方案,要解决的技术问题有:⑴页面布局控件与数据模型交互、动态数据的分离;⑵将页面布局控件、数据模型交互静态化;(3)客户端自动填充动态数据。
[0044]本发明的技术方案,将动态页面分离成静态HTML文件(布局、控件、样式)和动态数据两部分。本发明的技术方案,基于页面与模型分离技术,将动态页面的页面部分和数据、逻辑交互部分进行分离。本发明的技术方案,首先通过用元数据描述页面布局、页面数据模型,并存储于数据库中,再通过专用的代码编译引擎,根据元数据、页面布局模版、页面中用到的组件模版及数据模型模版生成对应的纯静态的页面文件、静态数据模型文件(不包含动态数据)并保存在缓存目录下,具体的动态数据则通过扩展代码加载。由于生成的静态文件不包含数据部分,页面、数据模型部分实现了静态化;由于使用的专用的代码编译引擎,直接将元数据编译成静态文件并缓存,这使得页面及数据模型文件生成后静态化。
[0045]本发明的技术方案,建立流程的过程如图10所示,具体流程如下:
⑴本发明的技术方案,首先接收用户请求,服务器收到请求,并执行⑵;
⑵服务器端应用程序接管请求,并将请求重定向到服务器端的控制模块,执行⑶;
⑶服务器控制模块收到请求后,判断当前是否获取数据的请求,如果是则执行⑶,否则执行⑷;
⑷如果不是获取数据的请求,则是获取布局文件的请求,由服务器程序判断是否已经存在静态布局文件,如果不存在则执行(5);若存在,则获取静态布局文件并执行(6);
(5)如果不存在静态布局文件,则根据元数据配置调用代码编译引擎动态生成静态布局文件(元数据,是动态页面布局的一种抽象描述,存储在数据库中),生成后缓存静态布局文件,并执行(6)。
[0046](6)获取静态布局文件后,返回文件到客户端并呈现静态布局文件及执行布局文件中的相关代码,执行代码会触发获取动态数据操作,由客户端程序判断是否存在数据的缓存,如果存在则执行(9),不存在缓存数据则执行(7); ⑴如果不存在缓存数据,则向服务器端发送获取数据请求,并执行⑵;
⑶服务器端程序执行获取请求逻辑,并返回数据后,执行⑶;
⑶将数据展现到页面中,与(6)步骤的呈现的布局文件一起组合成完整的页面展现;与现有技术方案相比,本发明的技术方案,在实现传统动态页面静态化基础上,兼顾实现了页面数据频繁变化时的页面静态化,并且将页面布局元数据化以及做到了页面布局的缓存。
[0047]在专利(申请)号为201010288293.X的专利申请中,提供了一种动态网页的静态化信息处理方法,包括:101.服务器读取自身系统配置参数;102.服务器根据系统配置参数,判定系统是否需要登录才能访问,若为是,执行步骤103 ;若为否,则执行步骤105 ;103.根据系统配置参数中的用户名和密码进行模拟用户登录;104.判定模拟用户登录是否成功,若为是,则执行步骤105 ;若为否,则结束;105.遍历系统中所有已配置的静态化配置bean,启动静态化流程;106.判定是否存在已配置的静态化配置bean,若为是,则执行步骤107 ;若否,则结束;等步骤。该技术方案虽然具有良好的灵活性和可扩展性,适用于网站访问高并发时的压力分担,以增强企业应用的健壮性和负载能力等优点;该技术方案通过模拟用户登录,来遍历的实现页面静态化,这对于页面数据不断变化的场景效果非常的不好,本发明的技术方案则恰好可以应对数据不断变化时,非数据部分内容的纯静态化。
[0048]在专利申请号为200710304143.1的专利(申请)中,提供了一种实现动态页面静态化的方法,该方法包括:A.确定用户所访问的页面中所需使用的组件;B.确定生成的组件的静态化文件路径下不存在相应的静态化文件时,生成该组件的动态化内容;C.确定生成的组件的动态化内容需进行静态化处理时,生成该动态化内容对应的静态化文件。该技术方案同时提供了一种实现动态页面静态化的系统,该方法和系统便于修改静态化页面内容,提高了页面的生成效率,且使得网站管理更为简单。该技术方案提供了只是提供了一种实现页面静态化的简单方式,通过判断静态文件是否存在,如不存在就自动生成的方式,这种方式没有从根本上解决同一页面数据不断变化的场景,而本发明的技术方案是从根本上解决了该问题,通过将动态页面分离成可静态化不变的部分和动态数据部分来实现最终的页面静态化。
[0049]本发明的技术方案,在上述“一种动态网页的静态化信息处理方法及装置”、“一种实现动态页面静态化的方法和系统”的基础上做了一些改进,Web应用中页面布局、模型部分能完美的静态化、在数据频繁变化的场景下也能实现静态化:
(I)Web页面中布局和控件、css的静态化;
⑵数据频繁变化时,将不变化的页面部分静态化。
[0050]以上结合附图详细说明了本发明的技术方案,考虑到相关技术中没有简便的、统一的针对复杂类型元数据静态化的解决办法。现有的动态页面静态化无法完成有复杂类型参与的动态页面静态化过程。因此,本发明提出了一种动态页面静态化的装置和一种动态页面静态化的方法,可以在现有的动态页面静态化定义语言支持的描述定义方式基础上,充分利用单对象类型元数据和文档描述类型完成多对象类型元数据的动态页面静态化,建立多对象类型元数据参与的面向对象类语言动态页面静态化的通用、统一静态化思路。
[0051]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种动态页面静态化的装置,其特征在于,包括: 请求接收单元,用于接收用户发送的请求,进行接管和重定向处理; 请求执行单元,用于收到重定向的用户请求后,根据该请求的类型,通过服务器端程序执行不同类型的请求; 执行结果展现单元,用于执行请求后,反馈执行情况,并展现执行结果。
2.根据权利要求1所述的动态页面静态化的装置,其特征在于,所述请求接收单元,具体包括: 服务器接收请求模块,用于接收用户发送的请求; 请求接管及重定向模块,用于应用程序接管请求,并将请求重定向到服务器端的控制模块; 和/或, 所述请求执行单元,具体包括: 请求类型判断模块,用于收到请求后,判断当前请求的类型; 请求类型判断结果执行模块,用于根据对当前请求类型的判断结果,执行相应的请求; 和/或, 所述执行结果展现单元,具体包括: 获取动态数据触发模块,用于获取静态布局文件后,返回静态布局文件到客户端并呈现静态布局文件及执行布局文件中的相关代码,执行相关代码,触发获取动态数据的操作; 缓存数据判断模块,用于客户端程序判断是否存在数据的缓存; 缓存数据判断判断结果执行模块,用于根据缓存数据判断结果,对相应请求的执行结果进行处理。
3.根据权利要求2所述的动态页面静态化的装置,其特征在于,所述请求类型判断结果执行模块,进一步包括: 获取数据的请求执行子模块,用于在当前类型是获取数据的请求时,通过服务器端程序执行获取请求逻辑,并返回数据;以及,将返回的数据展现到页面中,并与获取数据请求执行结果呈现的布局文件一起组合成完整的页面展现; 和/或, 获取布局文件的请求执行子模块,用于在当前类型是获取布局文件的请求,通过服务器程序判断是否已经存在静态布局文件;以及根据静态布局文件的判断结果,执行获取布局文件的请求。
4.根据权利要求3所述的动态页面静态化的装置,其特征在于,所述获取数据的请求执行子模块,更进一步包括: 请求逻辑获取及数据返回子模块,用于在当前类型是获取数据的请求时,通过服务器端程序执行获取请求逻辑,并返回数据; 数据展现及结果输出子模块,用于将将返回的数据展现到页面中,并与获取数据请求执行结果呈现的布局文件一起组合成完整的页面展现; 和/或, 所述获取布局文件的请求执行子模块,更进一步包括: 静态布局文件判断子模块,用于在当前类型是获取布局文件的请求,通过服务器程序判断是否已经存在静态布局文件; 静态布局文件判断结果执行子模块,用于根据静态布局文件的判断结果,执行获取布局文件的请求; 再进一步地, 所述静态布局文件判断结果执行子模块,再进一步包括: 静态布局文件获取及结果输出子模块,用于在存在静态布局文件,获取静态布局文件,并将获取的静态布局文件展现到页面中; 和/或, 所述静态布局文件判断结果执行子模块,再进一步还包括: 静态布局文件生成及缓存子模块,用于在不存在静态布局文件,根据元数据配置调用代码编译引擎动态生成静态布局文件,生成后缓存静态布局文件,并将生成的缓存静态布局文件展现到页面中。
5.根据权利要求2-4中任一项所述的动态页面静态化的装置,其特征在于,所述缓存数据判断判断结果执行模块,进一步包括: 页面展现及结果输出子模块,用于在存在缓存数据时,将数据展现到页面中,并与相应请求的执行结果呈现的布局文件一起组合成完整的页面展现; 和/或, 所述缓存数据判断判断结果执行模块,进一步还包括: 获取数据请求重新发送子模块,用于在不存在缓存数据时,返回请求接收单元,向服务器端发送获取数据请求,等待服务器端对该获取数据请求的接管和重定向处理。
6.—种动态页面静态化的方法,其特征在于,包括: 步骤202:服务器端接收用户发送的请求,进行接管和重定向处理; 步骤204:服务器控制模块收到重定向的用户请求后,根据该请求的类型,通过服务器端程序执行不同类型的请求; 步骤206:服务器端程序执行请求后,反馈执行情况,并展现执行结果。
7.根据权利要求6所述的动态页面静态化的方法,其特征在于,所述步骤202,具体包括: 步骤302:服务器端接收用户发送的请求; 步骤304:服务器端应用程序接管请求,并将请求重定向到服务器端的控制模块; 和/或, 所述步骤204,具体包括: 步骤402:服务器控制模块收到请求后,判断当前请求的类型; 步骤404:根据对当前请求类型的判断结果,执行相应的请求; 和/或, 所述步骤206,具体包括: 步骤902:获取静态布局文件后,返回静态布局文件到客户端并呈现静态布局文件及执行布局文件中的相关代码,执行相关代码,触发获取动态数据的操作; 步骤904:客户端程序判断是否存在数据的缓存; 步骤906:根据缓存数据判断结果,对相应请求的执行结果进行处理。
8.根据权利要求7所述的动态页面静态化的方法,其特征在于,所述步骤404,进一步包括: 步骤502:在当前类型是获取数据的请求时,通过服务器端程序执行获取请求逻辑,并返回数据;以及, 步骤504:将返回的数据展现到页面中,并与获取数据请求执行结果呈现的布局文件一起组合成完整的页面展现; 和/或, 所述步骤404,进一步还包括: 步骤602:在当前类型是获取布局文件的请求,通过服务器程序判断是否已经存在静态布局文件;以及, 步骤604:根据静态布局文件的判断结果,执行获取布局文件的请求。
9.根据权利要求8所述的动态页面静态化的方法,其特征在于,所述步骤604,再进一步包括: 步骤702:在存在静态布局文件,获取静态布局文件,并将获取的静态布局文件展现到页面中; 和/或, 所述步骤604,再进一步还包括: 步骤802:在不存在静态布局文件,根据元数据配置调用代码编译引擎动态生成静态布局文件,生成后缓存静态布局文件,并将生成的缓存静态布局文件展现到页面中。
10.根据权利要求7-9中任一项所述的动态页面静态化的方法,其特征在于,所述步骤.906,进一步包括: 步骤1002:在存在缓存数据时,将数据展现到页面中,并与相应请求的执行结果呈现的布局文件一起组合成完整的页面展现; 和/或, 所述步骤906,进一步还包括: 步骤1102:在不存在缓存数据时,返回请求接收单元,向服务器端发送获取数据请求,等待服务器端对该获取数据请求的接管和重定向处理。
【文档编号】G06F17/30GK104391868SQ201410583161
【公开日】2015年3月4日 申请日期:2014年10月28日 优先权日:2014年10月28日
【发明者】范金福, 方奇功 申请人:用友优普信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1