CN104317570B - 动态解析Web应用的装置和方法 - Google Patents

动态解析Web应用的装置和方法 Download PDF

Info

Publication number
CN104317570B
CN104317570B CN201410514276.1A CN201410514276A CN104317570B CN 104317570 B CN104317570 B CN 104317570B CN 201410514276 A CN201410514276 A CN 201410514276A CN 104317570 B CN104317570 B CN 104317570B
Authority
CN
China
Prior art keywords
web application
page
execution
calling
original
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410514276.1A
Other languages
English (en)
Other versions
CN104317570A (zh
Inventor
周华强
朱奕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING HANDSCAPE TECHNOLOGY Co Ltd
Original Assignee
BEIJING HANDSCAPE TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING HANDSCAPE TECHNOLOGY Co Ltd filed Critical BEIJING HANDSCAPE TECHNOLOGY Co Ltd
Priority to CN201410514276.1A priority Critical patent/CN104317570B/zh
Publication of CN104317570A publication Critical patent/CN104317570A/zh
Application granted granted Critical
Publication of CN104317570B publication Critical patent/CN104317570B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种动态解析Web应用的装置,至少包括接入控制器、页面拦截规则器、页面重写器、动态解析执行容器、执行控制模板集;接入控制器将访问请求转发到页面拦截规则器与动态解析执行容器,从页面重写器接收重写后的Web应用页面并返回;页面拦截规则器从访问请求中截取Url地址的特征信息,根据特征信息调用执行控制模板集中的执行控制模板;执行控制模板集包括执行控制模板,每一执行控制模板至少包括执行控制模板指令;动态解析执行容器按照执行控制模板指令完成Web应用的原始数据中指定的可执行代码片段,输出到重写后的Web应用页面的指定位置;页面重写器对响应给用户终端浏览器的重写后的Web应用页面的地址进行重写。

Description

动态解析Web应用的装置和方法
技术领域
本发明涉及通讯领域,特别涉及一种动态解析Web应用的装置和方法。
背景技术
网页浏览器是万维网(Web)服务的客户端浏览程序,可向Web服务器发送各种请求,并对从服务器发来的超文本信息和各种多媒体数据格式进行解释、显示和播放。网页浏览器是互联网用户上网的必备工具,因此目前已经有多家IT企业开发有不同类型的网络浏览器,如IE浏览器、chrome浏览器、Firefox浏览器等。
随着移动终端,特别是智能移动终端的迅速发展,网页浏览器不再是个人计算机的必备软件,其在移动终端上也得到了广泛的应用。与个人计算机相比,移动终端资源相对有限,因此移动终端网页浏览器较个人计算机上运行的网页浏览器在开发时更为困难,在功能上有更多限制。正是由于这一原因,目前绝大多数的移动终端内置网页浏览器不能解析执行包含复杂JS(JavaScript,一种基于对象和事件驱动并具有相对安全性的客户端脚本语言)的Web页面,这导致移动终端内置网页浏览器不能正常浏览包含复杂JS的Web页面。
为了解决移动终端内置浏览器不能正常浏览包含复杂JS的Web页面的问题,现有技术中所采用的方法是采用客户端/浏览器服务器的架构,该架构如图1所示,首先由客户端向浏览器服务器发送请求,接着由浏览器服务器根据该请求中所包含的地址访问Web应用服务器,在获取Web应用数据后在所述浏览器服务器端完成Web应用数据的解析执行,然后浏览器服务器端把解析结果响应给客户端,客户端将解析结果显示在移动终端的网页浏览器上。
在上述客户端/浏览器服务器的架构方式中,客户端和浏览器服务器之间采用自定义的交互动作通讯协议,而这种自定义的交互动作通讯协议是私有通讯协议,移动终端内置网页浏览器不能跟该浏览器服务器通讯。显然,现有技术中的这一架构方式要求Web应用开发人员针对某一类型的Web应用开发专用客户端,不仅要Web应用开发人员花费大量的时间、精力与金钱,也迫使用户需要在移动终端上安装名目繁多、各种各样的Web应用客户端,不利于用户对Web应用的管理。
此外,在现有技术的客户端/浏览器服务器的架构方式中,浏览器服务器对Web页面解析执行是在一个封闭的环境中执行,浏览器服务器会把整个Web应用页面的解析执行结果响应给客户端显示。这样做在实际应用中会带来如下问题:1、用户对于Web应用页面有各自不同的需求,对于某一用户而言,网站所提供的Web页面中可能只有部分是有效的,现有技术中的Web应用页面解析执行方式不能过滤出部分有效的Web页面信息给客户端显示,这会给用户带来不必要的信息冗余,浪费带宽资源;2、目前某些网站所提供的Web应用页面仅适合在个人计算机上显示,并不适合移动终端的屏幕尺寸,因此浏览器服务器对整个Web应用页面的解析执行结果可能无法给用户带来最佳的客户体验。
发明内容
本发明的目的在于克服现有技术中的浏览器服务器仅能在一个封闭环境中解析执行Web页面的缺陷,从而提供一种能够动态解析Web应用的装置。
为了实现上述目的,本发明提供了以下的技术方案:
一种动态解析Web应用的装置,该装置位于服务器端,至少包括接入控制器、页面拦截规则器、页面重写器、动态解析执行容器、执行控制模板集;其中,
所述接入控制器将用户发出的访问请求转发到所述页面拦截规则器与动态解析执行容器,以及从所述页面重写器接收重写后的Web应用页面并返回用户终端的浏览器;
所述页面拦截规则器从用户所发出的访问请求中截取Url地址的特征信息,根据所述Url地址的特征信息调用所述执行控制模板集中的执行控制模板;
所述执行控制模板集包括执行控制模板,每一执行控制模板至少包括执行控制模板指令;所述执行控制模板指令在Web应用的原始数据中加上执行控制模板指令标识,以标识出Web应用的原始数据中哪些可执行代码片段在服务器上执行,以及服务器上执行的可执行代码片段的执行结果存放到重写后的Web应用页面中的哪个位置;
所述动态解析执行容器按照所述执行控制模板指令完成Web应用的原始数据中指定的可执行代码片段,并输出到重写后的Web应用页面的指定位置;
所述页面重写器对响应给用户终端浏览器的重写后的Web应用页面的地址进行重写。
上述技术方案中:
所述执行控制模板集包括公共资源库、Web应用执行控制模板库;其中,
所述公共资源库用于存放公共使用的公共JS模块和对象文件;
所述Web应用执行控制模板库用于存放各个Web应用的执行控制模板。
上述技术方案中:
所述执行控制模板至少包括用于描述拦截何种Web应用的页面的拦截规则,以及用于指向与所要拦截的Web应用有关的存储空间地址的路径项;
其中所述路径项所指向的存储空间中存放拦截规则文件、js文件和jst文件;其中的拦截规则文件用于拦截相关Web应用的具体页面的Url地址,以及调用jst文件或js文件;所述js文件和jst文件能够有多个,其中的jst文件用于描述对所要拦截的Web应用的页面加以裁制后所显示页面的框架,所述js文件用于描述裁制指令的内容。
上述技术方案中:
所述动态解析执行容器包括:模板调用模块、模板配置或调用控制模块、拦截规则模块;其中,
所述模板调用模块根据所述页面拦截规则器所返回的结果从所述执行控制模板集中调用对应的执行控制模板,并根据所调用的执行控制模板对所拦截的Web应用的原始页面加以处理;所述模板调用模块包括识别执行片段单元、管理调用次序单元、调用配置单元;其中,
所述识别执行片段单元用于从Web应用的原始页面中识别出可执行代码片段;
所述的管理调用次序单元根据Web应用的原始执行逻辑确定Web应用中的执行代码片段的执行次序;
所述的调用配置单元用于对动态解析后所生成的Web应用的新的页面的功能进行配置;
所述模板配置或调用控制模块用于实现对执行控制模板集中各个执行控制模板的配置,或对原Web应用中可执行片段的组织调度;所述模板配置或调用控制模块包括模板结构化单元、执行关系控制单元、执行片段组织单元以及中间结果工作空间;其中,
所述模板结构化单元用于对原Web应用的页面和新生成的Web应用的页面在页面结构和功能上进行对应;
所述执行关系控制单元用于获取原Web应用页面的执行过程,并按此执行过程执行页面中的各个可执行片段;
所述执行片段组织单元用于控制各片段代码执行逻辑化过程和调用关系;
所述中间结果工作空间用于执行并保持中间数据。
所述拦截规则模块用于记录Web应用的原始页面的地址和其内部各子页面的地址,并在动态解析执行过程中拦截Web应用的原始页面。
上述技术方案中:
所述页面重写器对重写后的Web应用页面的地址进行重写包括:将Web应用原始页面的地址重写为“动态解析Web应用的装置Url+页面内各类Url”。
上述技术方案中:
所述的可执行代码片段包括JS片段、HTML片段以及CSS片段。
本发明还提供了基于所述的动态解析Web应用的装置所实现的方法,包括:
拦截用户所要访问的Web应用的原始数据,对所述Web应用的原始数据进行动态解析,拆解其中的可执行代码;
在服务器端解析执行适合在服务器端执行的可执行代码片段,保存执行过程中的动态数据,将服务器端的执行结果与留给浏览器解析执行的数据合并后返回给浏览器。
上述技术方案中,该方法包括以下步骤:
步骤1)、所述接入控制器监听并接收移动终端所发出的访问请求;在本步骤中,所述访问请求优选采用“动态解析装置Url地址+目标Url地址”的方式;
步骤2)、所述页面规则拦截器从步骤1)所得到的访问请求中截取出目标Url地址,根据所述目标URL地址从所述执行控制模板集中调用相应的执行控制模板;
步骤3)、获取用户所要访问的Web应用的Web原始数据,该步骤包括是否需要Cookie和Session支持操作:
步骤3-1)、不需要Cookie和Session支持操作时,Http访问器直接获取用户所要访问的Web应用的原始数据;
步骤3-2)、需要Cookie和Session支持操作时,Http访问器从Session&Cookie管理器那里获取跟该应用相关的Cookie和Session信息携带去获取用户所要访问的Web应用的Web原始数据;
步骤3-3)、如果Http访问器Web应用时,Web应用响应新的Cookie和Session信息或响应更新的Cookie和Session信息命令,Session&Cookie管理器负责接收更新同步存储管理访问该Web应用相关的Cookie和Session信息;
步骤3-4)、Session&Cookie管理器负责接收更新同步存储管理访问该Web应用相关的Cookie和Session信息,以便执行步骤3-2;
步骤4)、根据执行控制模板指令访问Web应用的页面指定区域或执行脚本位置;
步骤5)、根据执行控制模板指令,按原Web应用的执行步骤或执行逻辑分步调用动态解析执行容器和浏览器内核完成执行操作;
步骤6)、保留原Web应用业务的逻辑,按照业务逻辑和已经拆分存放的中间过程数据,并根据已经执行的JS片段、HTML片段以及CSS片段的中间结果,中间Cookie、Session状态,以及余下部分JS片段、HTML片段、CSS片段生成新的Web应用页面的基本操作和展示内容;
步骤7)、将步骤6)所生成的新的Web应用页面由页面重写器对应移动浏览器特点加入页面UI并排版,通过接入控制器返回给移动终端的浏览器。
上述技术方案中,该步骤5)进一步包括:
步骤5-1)、所述动态解析执行容器按照与该Web应用有关的执行控制模版指令中的标识识别并执行在执行控制模板中指定的JS片段、HTML片段以及CSS片段;本步骤中对JS片段、HTML片段以及CSS片段的执行通过动态解析执行容器对JS引擎、HTML解析器、CSS解析器的调用实现;
步骤5-2)、动态解析执行容器按照执行控制模板指令将步骤5-1)所得到的代码片段执行结果输出到Web应用的页面的指定位置。
上述技术方案中,所述访问请求采用“动态解析装置Url地址+目标Url地址”的方式。
本发明还提供了一种动态解析Web应用的装置,该装置位于服务器端,包括接入控制器、页面拦截规则器、页面重写器、动态解析执行容器、执行控制模板集以及Http访问器;
所述接入控制器将用户发出的访问请求转发到所述页面拦截规则器与动态解析执行容器,以及从所述页面重写器接收重写后的Web应用页面并返回用户终端的浏览器;
所述页面拦截规则器从用户所发出的访问请求中截取Url地址的特征信息,根据所述Url地址的特征信息调用所述执行控制模板集中的执行控制模板;
所述执行控制模板集包括执行控制模板,每一执行控制模板至少包括执行控制模板指令;所述执行控制模板指令在Web应用的原始数据中加上执行控制模板指令标识,以标识出Web应用的原始数据中哪些可执行代码片段在服务器上执行,以及服务器上执行的可执行代码片段的执行结果存放到重写后的Web应用页面中的哪个位置;
所述动态解析执行容器按照所述执行控制模板指令完成Web应用的原始数据中指定的可执行代码片段,并输出到重写后的Web应用页面的指定位置;
所述页面重写器对响应给用户终端浏览器的重写后的Web应用页面的地址进行重写;
所述Http访问器直接获取用户所要访问的Web应用的原始数据,并将其发送给动态解析执行容器。
上述技术方案中:
该装置进一步包括:JS引擎、HTML解析器、CSS解析器、以及Session&Cookie管理器中的至少一个;其中,
所述JS引擎用于接收动态解析执行容器的调用,并按照动态解析执行容器的指令实现Web应用中有关的JS脚本的处理;
所述HTML解析器用于接收动态解析执行容器的调用,并按照动态解析执行容器的指令实现Web页面中HTML标签补偿和解析执行;
所述CSS解析器用于接收动态解析执行容器的调用,并按照动态解析执行容器的指令实现Web页面中的CSS解析;
所述Session&Cookie管理器用于实现对每个移动终端访问Web应用所产生的Session和Cookie的管理。
上述技术方案中:
所述执行控制模板集包括公共资源库、Web应用执行控制模板库;
所述公共资源库用于存放公共使用的公共JS模块和对象文件;
所述Web应用执行控制模板库用于存放各个Web应用的执行控制模板。
上述技术方案中:
所述执行控制模板至少包括用于描述拦截何种Web应用的页面的拦截规则,以及用于指向与所要拦截的Web应用有关的存储空间地址的路径项;
其中所述路径项所指向的存储空间用于存放拦截规则文件、js文件和jst文件中的至少一个;其中的manifest.json文件用于拦截相关Web应用的具体页面的Url地址,以及调用jst文件或js文件;所述js文件和jst文件能够有多个,其中的jst文件用于描述对所要拦截的Web应用的页面加以裁制后所显示页面的框架,所述js文件用于描述裁制指令的内容。
上述技术方案中:
所述动态解析执行容器包括:模板调用模块、模板配置或调用控制模块、拦截规则模块;其中,
所述模板调用模块根据所述页面拦截规则器所返回的结果从所述执行控制模板集中调用对应的执行控制模板,并根据所调用的执行控制模板对所拦截的Web应用的原始页面加以处理;
所述模板配置或调用控制模块用于实现对执行控制模板集中各个执行控制模板的配置,或对原Web应用中可执行片段的组织调度;
所述拦截规则模块用于记录Web应用的原始页面的地址和其内部各子页面的地址,并在动态解析执行过程中拦截Web应用的原始页面。
上述技术方案中:
所述模板调用模块包括识别执行片段单元、管理调用次序单元、调用配置单元;其中,
所述识别执行片段单元用于从Web应用的原始页面中识别出可执行代码片段;
所述的管理调用次序单元根据Web应用的原始执行逻辑确定Web应用中的执行代码片段的执行次序;
所述的调用配置单元用于对动态解析后所生成的Web应用的新的页面的功能进行配置;
所述模板配置或调用控制模块包括模板结构化单元、执行关系控制单元、执行片段组织单元以及中间结果工作空间;其中,
所述模板结构化单元用于对原Web应用的页面和新生成的Web应用的页面在页面结构和功能上进行对应;
所述执行关系控制单元用于获取原Web应用页面的执行过程,并按此执行过程执行页面中的各个可执行片段;
所述执行片段组织单元用于控制各片段代码执行逻辑化过程和调用关系;
所述中间结果工作空间用于执行并保持中间数据。
上述技术方案中:
所述页面重写器对重写后的Web应用页面的地址进行重写包括:将Web应用原始页面的地址重写为“动态解析Web应用的装置Url+页面内各类Url”。
上述技术方案中:
所述的可执行代码片段包括JS片段、HTML片段以及CSS片段中的至少一个。
本发明又提供了基于所述的动态解析Web应用的装置所实现的方法,包括:
步骤1)、所述接入控制器监听并接收移动终端所发出的访问请求;本步骤中,所述访问请求采用“动态解析装置Url地址+目标Url地址”的方式。
步骤2)、所述页面规则拦截器从步骤1)所得到的访问请求中截取出目标Url地址,根据所述目标URL地址从所述执行控制模板集中调用相应的执行控制模板。
步骤3)、获取用户所要访问的Web应用的Web原始数据;
步骤4)、根据执行控制模板指令访问Web应用的页面指定区域或执行脚本位置;
步骤5)、根据执行控制模板指令,按原Web应用的执行步骤或执行逻辑分步调用动态解析执行容器和浏览器内核完成执行操作;
步骤6)、保留原Web应用业务的逻辑,按照业务逻辑和已经拆分存放的中间过程数据,并根据已经执行的JS片段、HTML片段以及CSS片段的中间结果,以及余下部分JS片段、HTML片段、CSS片段生成新的Web应用页面的基本操作和展示内容;
步骤7)、将步骤6)所生成的新的Web应用页面由页面重写器对应移动浏览器特点加入页面UI并排版,通过接入控制器返回给移动终端的浏览器。
上述技术方案中:
该步骤5)进一步包括:
步骤5-1)、所述动态解析执行容器按照与该Web应用有关的执行控制模版指令中的标识识别并执行在执行控制模板中指定的JS片段、HTML片段以及CSS片段中的至少一个片段;本步骤中对JS片段、HTML片段以及CSS片段中的至少一个片段的执行通过动态解析执行容器对JS引擎、HTML解析器和CSS解析器中的至少一个的调用实现;
步骤5-2)、动态解析执行容器按照执行控制模板指令将步骤5-1)所得到的代码片段执行结果输出到Web应用的页面的指定位置。
本发明再提供了一种动态解析执行容器,应用在装置中,包括:模板调用模块、模板配置或调用控制模块、拦截规则模块;其特征在于:
所述模板调用模块根据所述页面拦截规则器所返回的结果从所述执行控制模板集中调用对应的执行控制模板,并根据所调用的执行控制模板对所拦截的Web应用的原始页面加以处理;
所述模板配置或调用控制模块用于实现对执行控制模板集中各个执行控制模板的配置,或对原Web应用中可执行片段的组织调度;
所述拦截规则模块用于记录Web应用的原始页面的地址和其内部各子页面的地址,并在动态解析执行过程中拦截Web应用的原始页面。
上述技术方案中:
所述模板调用模块包括识别执行片段单元、管理调用次序单元、调用配置单元;其中,
所述的识别执行片段单元用于从Web应用的原始页面中识别出可执行代码片段;
所述的管理调用次序单元根据Web应用的原始执行逻辑确定Web应用中的执行代码片段的执行次序;
所述的调用配置单元用于对动态解析后所生成的Web应用的新的页面的功能进行配置。
上述技术方案中:
所述模板配置或调用控制模块包括模板结构化单元、执行关系控制单元、执行片段组织单元以及中间结果工作空间;其中,
所述的模板结构化单元用于对原Web应用的页面和新生成的Web应用的页面在页面结构和功能上进行对应;
所述的执行关系控制单元用于获取原Web应用页面的执行过程,并按此执行过程执行页面中的各个可执行片段;
所述的执行片段组织单元用于控制各片段代码执行逻辑化过程和调用关系;
所述中间结果工作空间用于执行并保持中间数据。
本发明再提供了一种利用所述的动态解析执行容器对Web应用进行动态解析执行方法,包括:
步骤1):首先,根据所述页面拦截规则器所返回的结果从所述执行控制模板集中调用对应的执行控制模板;
步骤2):其次,通过所述Http访问器得到用户所要访问的Web应用的原始页面数据;
步骤3):接着,由所述拦截规则模块根据所述执行控制模板拦截Web应用的原始页面数据,并根据所述执行控制模板中的相关指令修改和裁制Web应用的原始页面数据;
步骤4):最后,生成所述Web应用的新的页面。
上述技术方案中:
该步骤3)进一步包括:
将所得到的Web应用的原始页面数据存放到中间结果工作空间中,在该空间中,通过调用识别执行片段单元识别所述Web应用的原始页面数据中的可执行片段,通过调用管理调用次序单元确定所述可执行片段的执行次序,通过调用所述的调用配置单元确定Web应用的新生成页面所具有的功能;
通过调用模板结构化单元对Web应用的原始页面和新生成的页面在页面结构和功能上进行对应,通过调用执行关系控制单元确保页面中的各个可执行片段按照确定的执行次序执行,通过调用执行片段组织单元控制各片段代码执行逻辑化过程和调用关系。
上述技术方案中:
在步骤3)的所述的修改和裁制过程中,应当符合所述Web应用的原有逻辑,保留页面操作涉及的执行代码、子页面功能和页面所指向的其他执行页面。
上述技术方案中:
所述用于描述拦截何种Web应用的页面的拦截规则为采用正则表达式描述。
上述技术方案中:
所述拦截规则文件为manifest.json文件。
上述技术方案中:
所述用于描述拦截何种Web应用的页面的拦截规则为采用正则表达式描述。
上述技术方案中:
所述拦截规则文件为manifest.json文件。
本发明的优点在于:
本发明的装置与方法能够实现对Web应用解析过程的动态控制,能够根据已有的Web应用生成用户所希望的新的Web应用。
附图说明
图1是现有技术中的客户端/浏览器服务器架构的示意图;
图2是本发明的动态解析Web应用的装置的应用场景图;
图3是本发明的动态解析Web应用的装置的第一种结构示意图;
图4是网址为“http://www.ifeng.com”的网页经拦截后所生成的新的网页的示意图;
图5是动态解析执行容器的功能模块图;
图6是本发明的动态解析Web应用的装置的第二种结构示意图;
图7是本发明的动态解析Web应用的装置的第三种结构示意图;
图8是本发明的动态解析Web应用的装置的第四种结构示意图。
具体实施方式
现结合附图对本发明作进一步的描述。
为了便于理解,首先对本发明的动态解析Web应用的装置的应用场景及原理进行说明。参考图2,本发明的动态解析Web应用的装置部署在浏览器服务器端。当浏览器服务器根据用户的请求访问Web应用服务器,并对Web应用服务器所返回的数据进行解析执行得到完整Web应用页面后,将所得到的完整Web应用页面返回给本发明的动态解析Web应用的装置。动态解析Web应用的装置会对所述完整Web应用页面进行解析,包括:根据用户的需求从所述完整Web应用页面中提取部分功能、剔除冗余数据、对于页面可执行代码进行拆解并分段执行、对于过程动态数据进行分类存储,然后根据解析结果生成新的Web应用页面并返回给移动终端的浏览器。由此,移动终端的浏览器便可直接访问包含复杂JS的Web页面,或能够根据用户需要访问Web应用页面中的有效数据。
本申请提供了一种动态解析Web应用的装置,该装置位于服务器端,至少包括接入控制器、页面拦截规则器、页面重写器、动态解析执行容器、执行控制模板集;其中,所述接入控制器将用户发出的访问请求转发到所述页面拦截规则器与动态解析执行容器,以及从所述页面重写器接收重写后的Web应用页面并返回用户终端的浏览器;所述页面拦截规则器从用户所发出的访问请求中截取Url地址的特征信息,根据所述Url地址的特征信息调用所述执行控制模板集中的执行控制模板;所述执行控制模板集包括执行控制模板,每一执行控制模板至少包括执行控制模板指令;所述执行控制模板指令在Web应用的原始数据中加上执行控制模板指令标识,以标识出Web应用的原始数据中哪些可执行代码片段在服务器上执行,以及服务器上执行的可执行代码片段的执行结果存放到重写后的Web应用页面中的哪个位置;所述动态解析执行容器按照所述执行控制模板指令完成Web应用的原始数据中指定的可执行代码片段,并输出到重写后的Web应用页面的指定位置;所述页面重写器对响应给用户终端浏览器的重写后的Web应用页面的地址进行重写。
进一步的,所述执行控制模板集包括公共资源库、Web应用执行控制模板库;所述公共资源库用于存放公共使用的公共JS模块和对象文件;所述Web应用执行控制模板库用于存放各个Web应用的执行控制模板。
进一步的,所述执行控制模板至少包括用于描述拦截何种Web应用的页面的拦截规则(优选为采用正则表达式描述),以及用于指向与所要拦截的Web应用有关的存储空间地址的路径项;其中所述路径项所指向的存储空间中存放拦截规则文件(优选为manifest.json文件)、js文件和jst文件;其中的manifest.json文件用于拦截相关Web应用的具体页面的Url地址,以及调用jst文件或js文件;所述js文件和jst文件能够有多个,其中的jst文件用于描述对所要拦截的Web应用的页面加以裁制后所显示页面的框架,所述js文件用于描述裁制指令的内容。
进一步的,所述动态解析执行容器包括:模板调用模块、模板配置或调用控制模块、拦截规则模块;其中,所述模板调用模块包括识别执行片段单元、管理调用次序单元、调用配置单元,所述模板配置或调用控制模块包括模板结构化单元、执行关系控制单元、执行片段组织单元以及中间结果工作空间;所述拦截规则模块用于记录Web应用的原始页面的地址和其内部各子页面的地址,并在动态解析执行过程中拦截Web应用的原始页面;所述模板调用模块根据所述页面拦截规则器所返回的结果从所述执行控制模板集中调用对应的执行控制模板,并根据所调用的执行控制模板对所拦截的Web应用的原始页面加以处理;所述识别执行片段单元用于从Web应用的原始页面中识别出可执行代码片段;所述的管理调用次序单元根据Web应用的原始执行逻辑确定Web应用中的执行代码片段的执行次序;所述的调用配置单元用于对动态解析后所生成的Web应用的新的页面的功能进行配置;所述模板配置或调用控制模块用于实现对执行控制模板集中各个执行控制模板的配置,或对原Web应用中可执行片段的组织调度;其中,所述模板结构化单元用于对原Web应用的页面和新生成的Web应用的页面在页面结构和功能上进行对应;所述执行关系控制单元用于获取原Web应用页面的执行过程,并按此执行过程执行页面中的各个可执行片段;所述执行片段组织单元用于控制各片段代码执行逻辑化过程和调用关系;所述中间结果工作空间用于执行并保持中间数据。
进一步的,所述页面重写器对重写后的Web应用页面的地址进行重写包括:将Web应用原始页面的地址重写为“动态解析Web应用的装置Url+页面内各类Url”。
进一步的,所述的可执行代码片段包括JS片段、HTML片段以及CSS片段。
下面对本发明的动态解析Web应用的装置的具体实现做进一步的说明。
图3为本发明的动态解析Web应用的装置在一个实施例中的第一种结构示意图,如图所示,该装置包括接入控制器、页面拦截规则器、页面重写器、动态解析执行容器、执行控制模板集、JS引擎、HTML解析器、CSS解析器、Http访问器(fetcher)和Session&Cookie管理器。
所述接入控制器用于实现Http协议的代理服务控制,当动态解析web应用的装置一启动,所述接入控制器就进入代理监听状态,随时准备接收来源于移动终端的访问请求,一旦监听到访问请求将该请求转发到所述页面拦截规则器与动态解析执行容器,还包括从页面重写器接收重写后的Web应用页面并返回移动终端的浏览器。
所述页面拦截规则器从移动终端所发出的访问请求中截取Url地址的特征信息,根据所述Url地址的特征信息决定调用执行控制模板集中的哪个执行控制模板。
所述执行控制模板集至少包括多个执行控制模板,每一执行控制模板至少包括执行控制模板指令。所述执行控制模板指令是在已有的网页HTML文件(如*.htm或*.html)中加上执行控制模板指令标识。所述执行控制模板指令标识主要有两种,一种是用于标识出网页HTML文件中的哪段JS片段在服务器上执行,另一种是用于标识出在服务器上解析执行JS的结果放在网页HTML文件的网页HTML内容结构中的哪个位置。与之相比,没有被执行控制模板指令标识的网页HTML内容一般留给客户端浏览器解析执行。
所述JS引擎专门用于处理JS脚本。
所述HTML解析器用于实现Web页面中HTML标签补偿和解析执行。
所述CSS解析器用于实现Web页面中的CSS解析。
所述Session&Cookie管理器用于实现对每个移动终端访问Web应用所产生的Session和Cookie的管理。
所述Http访问器用于完成对Web应用的Web页面的HTTP请求管理。在本实施例中,所述Http访问器根据页面拦截规则器所截取的目标Url地址得到用户所要访问的Web应用的原始页面数据。
所述动态解析执行容器是一个通过执行JS脚本来协调JS引擎、HTML解析器、CSS解析器、Session&Cookie管理器、Http访问器和附加的原页面本来不具备的功能(如将word文件转换为html或将pdf文件转换为jpg图片)一起工作的JS执行环境。该执行环境按照执行控制模板指令完成指定部分web页面代码片段,并输出到指定页面位置。
所述页面重写器把动态解析Web应用的装置响应给移动终端浏览器的Web页面有关Url的地址重写成:动态解析Web应用的装置Url+页面内各类Url。
下面对本发明中的装置中的各个部分做进一步的说明。
在本实施例中,所述移动终端所发出的访问请求采用“动态解析装置Url地址+目标Url地址”的方式,即在目标Url地址之前添加本发明的动态解析Web应用的装置所在服务器的Url地址。例如,假设本发明的动态解析Web应用的装置的Url地址是http://221.130.253.152:1306/,移动设备拟访问的目标网站是百度网,其目标Url地址为http://www.baidu.com,则移动终端发出的访问请求的形式为:http://221.130.253.152:1306/tailor/http://www.baidu.com;其中的tailor指代本发明的动态解析Web应用的装置。
在本实施例中,所述执行控制模板集包括公共资源库、Web应用执行控制模板库;所述公共资源库用于存放公共使用的公共JS模块和对象文件;所述Web应用执行控制模板库用于存放各个Web应用的执行控制模板,某一执行控制模板与某一特定的Web应用有关。
所述Web应用执行控制模板库中可以有多个应用执行控制模板,下面是一个简单的Web应用执行控制模板库的代码实例:
在上述的代码实例中,该Web应用执行控制模板库包括三个应用执行控制模板,分别针对网址为“www.baidu.com”、“eipsps.scmcc.com.cn”、“cmhqportaltest.hq.cmcc”的网站。在各个应用执行控制模板中,matches项代表拦截规则,所述拦截规则采用正则表达式表示,path项用于指向与所要拦截的Web应用相关的地址。
所述path所在地址下至少存放有三种类型的文件:js文件、jst文件和拦截规则文件,其中该拦截规则文件优选为manifest.json文件;其中的manifest.json文件用于拦截相关Web应用的具体页面Url地址,以及调用jst文件或js文件;所述js文件和jst文件可以有多个,其中的jst文件用于描述对所要拦截的Web应用的页面加以裁制后所显示页面的框架,所述js文件用于描述裁制指令的内容,在jst文件中调用js文件能够实现输出相关Web应用的布局结构中需要动态变化输出的部分。
下面是manifest.json文件的一个代码实例:
在上述的代码实例中,matches项表示拦截规则,所述拦截规则采用正则表达式的形式,instruction项用来说明当符合拦截规则时应当执行哪个jst文件或js文件。在本实施例中,可通过对用于表示拦截规则的正则表达式的配置确定执行控制模板的粒度。在其他实施例中也可采用其他方式来表示拦截规则以及确定执行控制模板的粒度。
所述js文件中包括有对与Web应用有关的页面进行解析、加工和聚合指令。例如,所述js文件中包含有软件IE Developer Toolbar中的指令,通过该软件中的指令可定位、选定Web页上的特定元素;查看HTML对象的类名、ID以及类似链接路径、tab顺序、快捷键等细节;描绘表格、单元格、图片或选定标签的轮廓;显示图片象素、大小、路径、替代文字。
下面是js文件的一个简单实例:
执行该js文件后,可拦截网址为“http://www.ifeng.com”的网页生成如图4所示的那样只显示“hello www.ifeng.com”的页面。
所述jst文件中包含了对js文件的调用。在本实施例中,对jst调用js的语法做了如下规定:
(1)、<%=%>标签:表示jst把js变量值赋值给Web页面;例如:
<%=ReturnJS%>,<%=szHtml%>和<%=mainHTML%>等。
(2)、<%;%>标签:表示jst执行一段js脚本;例如:
<%var names=["chuck","chaz","chuckles","chucky","bill","jim"];%>。
(3)、<%-%>标签:表示jst执行一段js脚本,剔除所有的空白部分。例如:
<%results.forEach(function(item){-%>
<li><%=item%></li>
<%}-%>
(4)、<%include("js文件");%>标签:表示jst调用执行js文件,并可以把js全局定义的变量结果赋值给Web页面。例如:
<%include("pay.js");%>
在其他实施例中,jst调用js的语法还可以有其他形式。
从对执行控制模板集的上述描述可以看出,通过应用执行控制模板可实现对Web应用站点的拦截,通过应用执行控制模板中的manifest.json文件可实现对Web应用中某一页面的拦截,通过对jst文件或js文件的执行可实现对与Web应用有关的页面的裁制。依照对应用执行控制模板的上述说明,本领域技术人员也可根据Web应用的特点与需求实现对与Web应用有关的应用执行控制模板的配置。
本申请也提供了一种动态解析执行容器/引擎/装置、应用在上述装置中,包括:模板调用模块、模板配置或调用控制模块、拦截规则模块;其中,所述模板调用模块根据所述页面拦截规则器所返回的结果从所述执行控制模板集中调用对应的执行控制模板,并根据所调用的执行控制模板对所拦截的Web应用的原始页面加以处理;所述模板配置或调用控制模块用于实现对执行控制模板集中各个执行控制模板的配置,或对原Web应用中可执行片段的组织调度;所述拦截规则模块用于记录Web应用的原始页面的地址和其内部各子页面的地址,并在动态解析执行过程中拦截Web应用的原始页面。
进一步的,所述模板调用模块包括识别执行片段单元、管理调用次序单元、调用配置单元;所述的识别执行片段单元用于从Web应用的原始页面中识别出可执行代码片段;所述的管理调用次序单元根据Web应用的原始执行逻辑确定Web应用中的执行代码片段的执行次序;所述的调用配置单元用于对动态解析后所生成的Web应用的新的页面的功能进行配置。
进一步的,所述模板配置或调用控制模块包括模板结构化单元、执行关系控制单元、执行片段组织单元以及中间结果工作空间;所述的模板结构化单元用于对原Web应用的页面和新生成的Web应用的页面在页面结构和功能上进行对应;所述的执行关系控制单元用于获取原Web应用页面的执行过程,并按此执行过程执行页面中的各个可执行片段;所述的执行片段组织单元用于控制各片段代码执行逻辑化过程和调用关系;所述中间结果工作空间用于执行并保持中间数据。
参考图5,下面给出具体的、优选的其中一个实施例,所述动态解析执行容器/引擎/装置进一步包括:模板调用模块、模板配置或调用控制模块、拦截规则模块;其中,所述模板调用模块包括识别执行片段单元、管理调用次序单元、调用配置单元,所述模板配置或调用控制模块包括模板结构化单元、执行关系控制单元、执行片段组织单元以及中间结果工作空间。
所述拦截规则模块用于记录原Web应用的页面地址和其内部各子页面的地址,并在动态解析执行过程中拦截原Web应用的页面。
所述模板调用模块根据所述页面拦截规则器所返回的结果从所述执行控制模板集中调用对应的执行控制模板,并根据所调用的执行控制模板对所拦截的原Web应用的页面加以处理。其中的识别执行片段单元用于从原Web应用的页面中识别出诸如JS片段、HTML片段以及CSS片段在内的可执行片段;所述的管理调用次序单元根据原Web应用的执行逻辑确定原Web应用中的执行代码的执行次序;所述的调用配置单元用于对动态解析后所生成的Web应用的新的页面的功能进行配置,所配置的功能可以是原Web应用的页面已有的功能,也可以是新增加的功能或对已有功能进行替换的新功能。
所述模板配置或调用控制模块用于实现对执行控制模板集中各个执行控制模板的配置,或对原Web应用中可执行片段的组织调度。所述模板结构化单元用于对原Web应用的页面和新生成的Web应用的页面在页面结构和功能上进行对应;所述执行关系控制单元用于获取原Web应用页面的执行过程,并按此执行过程执行页面中的各个可执行片段;所述执行片段组织单元用于控制各片段代码执行逻辑化过程和调用关系;所述中间结果工作空间用于执行并保持中间数据。
所述动态解析执行容器在工作过程中,处理步骤如下:
首先,根据所述页面拦截规则器所返回的结果从所述执行控制模板集中调用对应的执行控制模板,例如,假设移动终端发起对“www.baidu.com”的访问请求,则从执行控制模板集中调用与baidu有关的执行控制模板(假设该执行控制模板已经保存在执行控制模板集中);
其次,通过所述Http访问器得到用户所要访问的Web应用的原始页面数据,如百度首页的HTML信息;
接着,由所述拦截规则模块根据所述执行控制模板拦截Web应用的原始页面数据,并根据所述执行控制模板中的相关指令修改和裁制Web应用的原始页面数据,具体包括:将所得到的Web应用的原始页面数据存放到中间结果工作空间中,在该空间中,通过调用识别执行片段单元识别所述Web应用的原始页面数据中的可执行片段,通过调用管理调用次序单元确定所述可执行片段的执行次序,通过调用所述的调用配置单元确定Web应用的新生成页面所具有的功能;通过调用模板结构化单元对Web应用的原始页面和新生成的页面在页面结构和功能上进行对应,通过调用执行关系控制单元确保页面中的各个可执行片段按照确定的执行次序执行,通过调用执行片段组织单元控制各片段代码执行逻辑化过程和调用关系;在上述的修改和裁制过程中,应当符合所述Web应用的原有逻辑,保留页面操作涉及的执行代码、子页面功能和页面所指向的其他执行页面;
最后,生成所述Web应用的新的页面。
其中,所述页面重写器对Url地址的重写包括将Web应用中原始页面中有关Url的地址重写成:动态解析Web应用的装置Url+页面内各类Url。如将百度首页的HTML信息中a、img和frame等各种链接的Url地址重写成“http://221.130.253.152:1306/tailor/+各种链接的Url地址”。
下面对图3以本发明的动态解析Web应用的装置为基础,对该装置的工作过程加以说明。
步骤1)、所述接入控制器监听并接收移动终端所发出的访问请求;
本步骤中,所述访问请求采用“动态解析装置Url地址+目标Url地址”的方式。
步骤2)、所述页面规则拦截器从步骤1)所得到的访问请求中截取出目标Url地址,根据所述目标URL地址从所述执行控制模板集中调用相应的执行控制模板。
步骤3)、获取用户所要访问的Web应用的Web原始数据,该步骤包括是否需要Cookie和Session支持操作:
步骤3-1)、不需要Cookie和Session支持操作时,Http访问器直接获取用户所要访问的Web应用的原始数据;
步骤3-2)、需要Cookie和Session支持操作时,Http访问器从Session&Cookie管理器那里获取跟该应用相关的Cookie和Session信息携带去获取用户所要访问的Web应用的Web原始数据;
步骤3-3)、如果Http访问器Web应用时,Web应用响应新的Cookie和Session信息或响应更新的Cookie和Session信息命令,Session&Cookie管理器负责接收更新同步存储管理访问该Web应用相关的Cookie和Session信息;
步骤3-4)、Session&Cookie管理器负责接收更新同步存储管理访问该Web应用相关的Cookie和Session信息,以便执行步骤3-2;
步骤4)、根据执行控制模板指令访问Web应用的页面指定区域或执行脚本位置;
步骤5)、根据执行控制模板指令,按原Web应用的执行步骤(或执行逻辑)分步调用动态解析执行容器和浏览器内核完成执行操作;该步骤包括:
步骤5-1)、所述动态解析执行容器按照与该Web应用有关的执行控制模版指令中的标识识别并执行在执行控制模板中指定的JS片段、HTML片段以及CSS片段;
本步骤中对JS片段、HTML片段以及CSS片段的执行通过动态解析执行容器对JS引擎、HTML解析器、CSS解析器的调用实现;
步骤5-2)、动态解析执行容器按照执行控制模板指令将步骤5-1)所得到的代码片段执行结果输出到Web应用的页面的指定位置;
步骤6)、保留原Web应用业务的逻辑,按照业务逻辑和已经拆分存放的中间过程数据,并根据已经执行的JS片段、HTML片段以及CSS片段的中间结果,中间Cookie、Session状态,以及余下部分JS片段、HTML片段、CSS片段生成新的Web应用页面的基本操作和展示内容;
步骤7)、将步骤6)所生成的新的Web应用页面由页面重写器对应移动浏览器特点加入页面UI并排版,通过接入控制器返回给移动终端的浏览器。
同时,本申请还提供了一种动态解析Web应用的装置,该装置位于服务器端,包括接入控制器、页面拦截规则器、页面重写器、动态解析执行容器、执行控制模板集以及Http访问器;其特征在于:所述接入控制器将用户发出的访问请求转发到所述页面拦截规则器与动态解析执行容器,以及从所述页面重写器接收重写后的Web应用页面并返回用户终端的浏览器;所述页面拦截规则器从用户所发出的访问请求中截取Url地址的特征信息,根据所述Url地址的特征信息调用所述执行控制模板集中的执行控制模板;所述执行控制模板集包括执行控制模板,每一执行控制模板至少包括执行控制模板指令;所述执行控制模板指令在Web应用的原始数据中加上执行控制模板指令标识,以标识出Web应用的原始数据中哪些可执行代码片段在服务器上执行,以及服务器上执行的可执行代码片段的执行结果存放到重写后的Web应用页面中的哪个位置;所述动态解析执行容器按照所述执行控制模板指令完成Web应用的原始数据中指定的可执行代码片段,并输出到重写后的Web应用页面的指定位置;所述页面重写器对响应给用户终端浏览器的重写后的Web应用页面的地址进行重写;所述Http访问器直接获取用户所要访问的Web应用的原始数据,并将其发送给动态解析执行容器。
优选的,该装置进一步包括:JS引擎、HTML解析器和CSS解析器中至少一个;
其中,所述JS引擎用于接收动态解析执行容器的调用,并按照动态解析执行容器的指令实现对与Web应用有关的执行控制模板指令中标示识别的JS片段的解析执行;所述HTML解析器用于接收动态解析执行容器的调用,并按照动态解析执行容器的指令实现对与Web应用有关的执行控制模板指令中标示识别的HTML片段的解析执行;所述CSS解析器用于接收动态解析执行容器的调用,并按照动态解析执行容器的指令实现对与Web应用有关的执行控制模板指令中标示识别的CSS片段的解析执行。
对于该装置的具体结构及实施方式,参见图6-8所示,另外,该装置的其他子部件及其功能与前面所述一致,在此不再一一赘述。
下面对图6以本发明的动态解析Web应用的装置为基础,对该装置的工作过程加以说明。
步骤1)、所述接入控制器监听并接收移动终端所发出的访问请求;
本步骤中,所述访问请求采用“动态解析装置Url地址+目标Url地址”的方式。
步骤2)、所述页面规则拦截器从步骤1)所得到的访问请求中截取出目标Url地址,根据所述目标URL地址从所述执行控制模板集中调用相应的执行控制模板。
步骤3)、获取用户所要访问的Web应用的Web原始数据;
步骤4)、根据执行控制模板指令访问Web应用的页面指定区域或执行脚本位置;
步骤5)、根据执行控制模板指令,按原Web应用的执行步骤(或执行逻辑)分步调用动态解析执行容器和浏览器内核完成执行操作;该步骤包括:
步骤5-1)、所述动态解析执行容器按照与该Web应用有关的执行控制模版指令中的标识识别并执行在执行控制模板中指定的JS片段、HTML片段以及CSS片段;
本步骤中对JS片段、HTML片段以及CSS片段的执行通过动态解析执行容器对JS引擎、HTML解析器、CSS解析器的调用实现;
步骤5-2)、动态解析执行容器按照执行控制模板指令将步骤5-1)所得到的代码片段执行结果输出到Web应用的页面的指定位置;
步骤6)、保留原Web应用业务的逻辑,按照业务逻辑和已经拆分存放的中间过程数据,并根据已经执行的JS片段、HTML片段以及CSS片段的中间结果,以及余下部分JS片段、HTML片段、CSS片段生成新的Web应用页面的基本操作和展示内容;
步骤7)、将步骤6)所生成的新的Web应用页面由页面重写器对应移动浏览器特点加入页面UI并排版,通过接入控制器返回给移动终端的浏览器。
下面对图7以本发明的动态解析Web应用的装置为基础,对该装置的工作过程加以说明,图7跟图6步骤类似,只是实现对HTML处理,没有JS和CSS处理,且不需要Cookie和Session管理器支持操作,Http访问器可以直接获取用户所要访问的Web应用的原始数据。
下面对图8以本发明的动态解析Web应用的装置为基础,对该装置的工作过程加以说明,图8跟图3步骤类似,只是实现对HTML处理,没有JS和CSS处理,并且需要Cookie和Session支持操作,Http访问器需要从Session&Cookie管理器那里获取跟该应用相关的Cookie和Session信息携带去获取用户所要访问的Web应用的Web原始数据。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (33)

1.一种动态解析Web应用的装置,其特征在于,该装置位于服务器端,至少包括接入控制器、页面拦截规则器、页面重写器、动态解析执行容器、执行控制模板集;其中,
所述接入控制器将用户发出的访问请求转发到所述页面拦截规则器与动态解析执行容器,以及从所述页面重写器接收重写后的Web应用页面并返回用户终端的浏览器;
所述页面拦截规则器从用户所发出的访问请求中截取Url地址的特征信息,根据所述Url地址的特征信息调用所述执行控制模板集中的执行控制模板;
所述执行控制模板集包括执行控制模板,每一执行控制模板至少包括执行控制模板指令;所述执行控制模板指令在Web应用的原始数据中加上执行控制模板指令标识,以标识出Web应用的原始数据中哪些可执行代码片段在服务器上执行,以及服务器上执行的可执行代码片段的执行结果存放到重写后的Web应用页面中的哪个位置;
所述动态解析执行容器按照所述执行控制模板指令完成Web应用的原始数据中指定的可执行代码片段,并输出到重写后的Web应用页面的指定位置;
所述页面重写器对响应给用户终端浏览器的重写后的Web应用页面的地址进行重写;
所述动态解析执行容器包括:模板调用模块、模板配置或调用控制模块、拦截规则模块;其中,
所述模板调用模块根据所述页面拦截规则器所返回的结果从所述执行控制模板集中调用对应的执行控制模板,并根据所调用的执行控制模板对所拦截的Web应用的原始页面加以处理;所述模板调用模块包括识别执行片段单元、管理调用次序单元、调用配置单元;其中,
所述识别执行片段单元用于从Web应用的原始页面中识别出可执行代码片段;
所述的管理调用次序单元根据Web应用的原始执行逻辑确定Web应用中的执行代码片段的执行次序;
所述的调用配置单元用于对动态解析后所生成的Web应用的新的页面的功能进行配置;
所述模板配置或调用控制模块用于实现对执行控制模板集中各个执行控制模板的配置,或对原Web应用中可执行片段的组织调度;所述模板配置或调用控制模块包括模板结构化单元、执行关系控制单元、执行片段组织单元以及中间结果工作空间;其中,
所述模板结构化单元用于对原Web应用的页面和新生成的Web应用的页面在页面结构和功能上进行对应;
所述执行关系控制单元用于获取原Web应用页面的执行过程,并按此执行过程执行页面中的各个可执行片段;
所述执行片段组织单元用于控制各片段代码执行逻辑化过程和调用关系;
所述中间结果工作空间用于执行并保持中间数据;
所述拦截规则模块用于记录Web应用的原始页面的地址和其内部各子页面的地址,并在动态解析执行过程中拦截Web应用的原始页面;
所述执行控制模板至少包括用于描述拦截何种Web应用的页面的拦截规则,以及用于指向与所要拦截的Web应用有关的存储空间地址的路径项;
其中所述路径项所指向的存储空间中存放拦截规则文件、js文件和jst文件;其中的拦截规则文件用于拦截相关Web应用的具体页面的Url地址,以及调用jst文件或js文件;所述js文件和jst文件能够有多个,其中的jst文件用于描述对所要拦截的Web应用的页面加以裁制后所显示页面的框架,所述js文件用于描述裁制指令的内容。
2.根据权利要求1所述的动态解析Web应用的装置,其特征在于:
所述执行控制模板集包括公共资源库、Web应用执行控制模板库;其中,所述公共资源库用于存放公共使用的公共JS模块和对象文件;所述Web应用执行控制模板库用于存放各个Web应用的执行控制模板。
3.根据权利要求2所述的装置,其特征在于:
所述用于描述拦截何种Web应用的页面的拦截规则为采用正则表达式描述。
4.根据权利要求2所述的装置,其特征在于:
所述拦截规则文件为manifest.json文件。
5.根据权利要求1-2任一所述的动态解析Web应用的装置,其特征在于:
所述页面重写器对重写后的Web应用页面的地址进行重写包括:将Web应用原始页面的地址重写为“动态解析Web应用的装置Url+页面内各类Url”。
6.根据权利要求5所述的装置,其特征在于:
所述用于描述拦截何种Web应用的页面的拦截规则为采用正则表达式描述。
7.根据权利要求5所述的装置,其特征在于:
所述拦截规则文件为manifest.json文件。
8.根据权利要求1-2任一所述的动态解析Web应用的装置,其特征在于:
所述的可执行代码片段包括JS片段、HTML片段以及CSS片段。
9.根据权利要求8中所述的装置,其特征在于:
所述用于描述拦截何种Web应用的页面的拦截规则为采用正则表达式描述。
10.根据权利要求8中所述的装置,其特征在于:
所述拦截规则文件为manifest.json文件。
11.基于权利要求1-2之一所述的动态解析Web应用的装置所实现的方法,包括:
拦截用户所要访问的Web应用的原始数据,对所述Web应用的原始数据进行动态解析,拆解其中的可执行代码;
在服务器端解析执行适合在服务器端执行的可执行代码片段,保存执行过程中的动态数据,将服务器端的执行结果与留给浏览器解析执行的数据合并后返回给浏览器;
该方法包括以下步骤:
步骤1)、所述接入控制器监听并接收移动终端所发出的访问请求;在本步骤中,所述访问请求优选采用“动态解析装置Url地址+目标Url地址”的方式;
步骤2)、所述页面规则拦截器从步骤1)所得到的访问请求中截取出目标Url地址,根据所述目标URL地址从所述执行控制模板集中调用相应的执行控制模板;
步骤3)、获取用户所要访问的Web应用的Web原始数据,
步骤4)、根据执行控制模板指令访问Web应用的页面指定区域或执行脚本位置;
步骤5)、根据执行控制模板指令,按原Web应用的执行步骤或执行逻辑分步调用动态解析执行容器和浏览器内核完成执行操作;
步骤6)、保留原Web应用业务的逻辑,按照业务逻辑和已经拆分存放的中间过程数据,并根据已经执行的JS片段、HTML片段以及CSS片段的中间结果,中间Cookie、Session状态,以及余下部分JS片段、HTML片段、CSS片段生成新的Web应用页面的基本操作和展示内容;
步骤7)、将步骤6)所生成的新的Web应用页面由页面重写器对应移动浏览器特点加入页面UI并排版,通过接入控制器返回给移动终端的浏览器。
12.根据权利要求11所述的方法,其特征在于:
所述用于描述拦截何种Web应用的页面的拦截规则为采用正则表达式描述。
13.根据权利要求11所述的方法,其特征在于:
所述拦截规则文件为manifest.json文件。
14.根据权利要求11所述的方法,其特征在于:
该步骤5)进一步包括:
步骤5-1)、所述动态解析执行容器按照与该Web应用有关的执行控制模版指令中的标识识别并执行在执行控制模板中指定的JS片段、HTML片段以及CSS片段;本步骤中对JS片段、HTML片段以及CSS片段的执行通过动态解析执行容器对JS引擎、HTML解析器、CSS解析器的调用实现;
步骤5-2)、动态解析执行容器按照执行控制模板指令将步骤5-1)所得到的代码片段执行结果输出到Web应用的页面的指定位置。
15.根据权利要求14所述的方法,其特征在于:
所述访问请求采用“动态解析装置Url地址+目标Url地址”的方式。
16.根据权利要求14-15任一所述的方法,其特征在于:
所述用于描述拦截何种Web应用的页面的拦截规则为采用正则表达式描述。
17.根据权利要求14-15任一所述的方法,其特征在于:
所述拦截规则文件为manifest.json文件。
18.一种动态解析Web应用的装置,该装置位于服务器端,包括接入控制器、页面拦截规则器、页面重写器、动态解析执行容器、执行控制模板集以及Http访问器;其特征在于:
所述接入控制器将用户发出的访问请求转发到所述页面拦截规则器与动态解析执行容器,以及从所述页面重写器接收重写后的Web应用页面并返回用户终端的浏览器;
所述页面拦截规则器从用户所发出的访问请求中截取Url地址的特征信息,根据所述Url地址的特征信息调用所述执行控制模板集中的执行控制模板;
所述执行控制模板集包括执行控制模板,每一执行控制模板至少包括执行控制模板指令;所述执行控制模板指令在Web应用的原始数据中加上执行控制模板指令标识,以标识出Web应用的原始数据中哪些可执行代码片段在服务器上执行,以及服务器上执行的可执行代码片段的执行结果存放到重写后的Web应用页面中的哪个位置;
所述动态解析执行容器按照所述执行控制模板指令完成Web应用的原始数据中指定的可执行代码片段,并输出到重写后的Web应用页面的指定位置;
所述页面重写器对响应给用户终端浏览器的重写后的Web应用页面的地址进行重写;
所述Http访问器直接获取用户所要访问的Web应用的原始数据,并将其发送给动态解析执行容器;
所述动态解析执行容器包括:模板调用模块、模板配置或调用控制模块、拦截规则模块;其中,
所述模板调用模块根据所述页面拦截规则器所返回的结果从所述执行控制模板集中调用对应的执行控制模板,并根据所调用的执行控制模板对所拦截的Web应用的原始页面加以处理;
所述模板配置或调用控制模块用于实现对执行控制模板集中各个执行控制模板的配置,或对原Web应用中可执行片段的组织调度;
所述拦截规则模块用于记录Web应用的原始页面的地址和其内部各子页面的地址,并在动态解析执行过程中拦截Web应用的原始页面;
所述模板调用模块包括识别执行片段单元、管理调用次序单元、调用配置单元;其中,
所述识别执行片段单元用于从Web应用的原始页面中识别出可执行代码片段;
所述的管理调用次序单元根据Web应用的原始执行逻辑确定Web应用中的执行代码片段的执行次序;
所述的调用配置单元用于对动态解析后所生成的Web应用的新的页面的功能进行配置;
所述模板配置或调用控制模块包括模板结构化单元、执行关系控制单元、执行片段组织单元以及中间结果工作空间;其中,
所述模板结构化单元用于对原Web应用的页面和新生成的Web应用的页面在页面结构和功能上进行对应;
所述执行关系控制单元用于获取原Web应用页面的执行过程,并按此执行过程执行页面中的各个可执行片段;
所述执行片段组织单元用于控制各片段代码执行逻辑化过程和调用关系;
所述中间结果工作空间用于执行并保持中间数据。
19.根据权利要求18所述的装置,其特征在于:
该装置进一步包括:JS引擎、HTML解析器、CSS解析器、以及Session&Cookie管理器中的至少一个;其中,
所述JS引擎用于接收动态解析执行容器的调用,并按照动态解析执行容器的指令实现Web应用中有关的JS脚本的处理;
所述HTML解析器用于接收动态解析执行容器的调用,并按照动态解析执行容器的指令实现Web页面中HTML标签补偿和解析执行;
所述CSS解析器用于接收动态解析执行容器的调用,并按照动态解析执行容器的指令实现Web页面中的CSS解析;
所述Session&Cookie管理器用于实现对每个移动终端访问Web应用所产生的Session和Cookie的管理。
20.根据权利要求18所述的装置,其特征在于:
所述执行控制模板集包括公共资源库、Web应用执行控制模板库;
所述公共资源库用于存放公共使用的公共JS模块和对象文件;
所述Web应用执行控制模板库用于存放各个Web应用的执行控制模板。
21.根据权利要求20所述的装置,其特征在于:
所述执行控制模板至少包括用于描述拦截何种Web应用的页面的拦截规则,以及用于指向与所要拦截的Web应用有关的存储空间地址的路径项;
其中所述路径项所指向的存储空间用于存放拦截规则文件、js文件和jst文件中的至少一个;其中的manifest.json文件用于拦截相关Web应用的具体页面的Url地址,以及调用jst文件或js文件;所述js文件和jst文件能够有多个,其中的jst文件用于描述对所要拦截的Web应用的页面加以裁制后所显示页面的框架,所述js文件用于描述裁制指令的内容。
22.根据权利要求21所述的装置,其特征在于:
所述用于描述拦截何种Web应用的页面的拦截规则为采用正则表达式描述。
23.根据权利要求21所述的装置,其特征在于:
所述拦截规则文件为manifest.json文件。
24.根据权利要求18-21中任一所述的装置,其特征在于:
所述页面重写器对重写后的Web应用页面的地址进行重写包括:将Web应用原始页面的地址重写为“动态解析Web应用的装置Url+页面内各类Url”。
25.根据权利要求18-21中任一所述的装置,其特征在于:
所述的可执行代码片段包括JS片段、HTML片段以及CSS片段中的至少一个。
26.基于权利要求18-21之一所述的动态解析Web应用的装置所实现的方法,包括:
步骤1)、所述接入控制器监听并接收移动终端所发出的访问请求;本步骤中,所述访问请求采用“动态解析装置Url地址+目标Url地址”的方式;
步骤2)、所述页面规则拦截器从步骤1)所得到的访问请求中截取出目标Url地址,根据所述目标URL地址从所述执行控制模板集中调用相应的执行控制模板;
步骤3)、获取用户所要访问的Web应用的Web原始数据;该步骤包括是否需要Cookie和Session支持操作:
步骤3-1)、不需要Cookie和Session支持操作时,Http访问器直接获取用户所要访问的Web应用的原始数据;
步骤3-2)、需要Cookie和Session支持操作时,Http访问器从Session&Cookie管理器那里获取跟该应用相关的Cookie和Session信息携带去获取用户所要访问的Web应用的Web原始数据;
步骤3-3)、如果Http访问器Web应用时,Web应用响应新的Cookie和Session信息或响应更新的Cookie和Session信息命令,Session&Cookie管理器负责接收更新同步存储管理访问该Web应用相关的Cookie和Session信息;
步骤3-4)、Session&Cookie管理器负责接收更新同步存储管理访问该Web应用相关的Cookie和Session信息,以便执行步骤3-2);
步骤4)、根据执行控制模板指令访问Web应用的页面指定区域或执行脚本位置;
步骤5)、根据执行控制模板指令,按原Web应用的执行步骤或执行逻辑分步调用动态解析执行容器和浏览器内核完成执行操作;
步骤6)、保留原Web应用业务的逻辑,按照业务逻辑和已经拆分存放的中间过程数据,并根据已经执行的JS片段、HTML片段以及CSS片段的中间结果,以及余下部分JS片段、HTML片段、CSS片段生成新的Web应用页面的基本操作和展示内容;
步骤7)、将步骤6)所生成的新的Web应用页面由页面重写器对应移动浏览器特点加入页面UI并排版,通过接入控制器返回给移动终端的浏览器。
27.根据权利要求26所述的方法,其特征在于:
该步骤5)进一步包括:
步骤5-1)、所述动态解析执行容器按照与该Web应用有关的执行控制模版指令中的标识识别并执行在执行控制模板中指定的JS片段、HTML片段以及CSS片段中的至少一个片段;本步骤中对JS片段、HTML片段以及CSS片段中的至少一个片段的执行通过动态解析执行容器对JS引擎、HTML解析器和CSS解析器中的至少一个的调用实现;
步骤5-2)、动态解析执行容器按照执行控制模板指令将步骤5-1)所得到的代码片段执行结果输出到Web应用的页面的指定位置。
28.基于权利要求24所述的动态解析Web应用的装置所实现的方法,包括:
步骤1)、所述接入控制器监听并接收移动终端所发出的访问请求;本步骤中,所述访问请求采用“动态解析装置Url地址+目标Url地址”的方式;
步骤2)、所述页面规则拦截器从步骤1)所得到的访问请求中截取出目标Url地址,根据所述目标URL地址从所述执行控制模板集中调用相应的执行控制模板;
步骤3)、获取用户所要访问的Web应用的Web原始数据;该步骤包括是否需要Cookie和Session支持操作:
步骤3-1)、不需要Cookie和Session支持操作时,Http访问器直接获取用户所要访问的Web应用的原始数据;
步骤3-2)、需要Cookie和Session支持操作时,Http访问器从Session&Cookie管理器那里获取跟该应用相关的Cookie和Session信息携带去获取用户所要访问的Web应用的Web原始数据;
步骤3-3)、如果Http访问器Web应用时,Web应用响应新的Cookie和Session信息或响应更新的Cookie和Session信息命令,Session&Cookie管理器负责接收更新同步存储管理访问该Web应用相关的Cookie和Session信息;
步骤3-4)、Session&Cookie管理器负责接收更新同步存储管理访问该Web应用相关的Cookie和Session信息,以便执行步骤3-2);
步骤4)、根据执行控制模板指令访问Web应用的页面指定区域或执行脚本位置;
步骤5)、根据执行控制模板指令,按原Web应用的执行步骤或执行逻辑分步调用动态解析执行容器和浏览器内核完成执行操作;
步骤6)、保留原Web应用业务的逻辑,按照业务逻辑和已经拆分存放的中间过程数据,并根据已经执行的JS片段、HTML片段以及CSS片段的中间结果,以及余下部分JS片段、HTML片段、CSS片段生成新的Web应用页面的基本操作和展示内容;
步骤7)、将步骤6)所生成的新的Web应用页面由页面重写器对应移动浏览器特点加入页面UI并排版,通过接入控制器返回给移动终端的浏览器。
29.基于权利要求25所述的动态解析Web应用的装置所实现的方法,包括:
步骤1)、所述接入控制器监听并接收移动终端所发出的访问请求;本步骤中,所述访问请求采用“动态解析装置Url地址+目标Url地址”的方式;
步骤2)、所述页面规则拦截器从步骤1)所得到的访问请求中截取出目标Url地址,根据所述目标URL地址从所述执行控制模板集中调用相应的执行控制模板;
步骤3)、获取用户所要访问的Web应用的Web原始数据;该步骤包括是否需要Cookie和Session支持操作:
步骤3-1)、不需要Cookie和Session支持操作时,Http访问器直接获取用户所要访问的Web应用的原始数据;
步骤3-2)、需要Cookie和Session支持操作时,Http访问器从Session&Cookie管理器那里获取跟该应用相关的Cookie和Session信息携带去获取用户所要访问的Web应用的Web原始数据;
步骤3-3)、如果Http访问器Web应用时,Web应用响应新的Cookie和Session信息或响应更新的Cookie和Session信息命令,Session&Cookie管理器负责接收更新同步存储管理访问该Web应用相关的Cookie和Session信息;
步骤3-4)、Session&Cookie管理器负责接收更新同步存储管理访问该Web应用相关的Cookie和Session信息,以便执行步骤3-2);
步骤4)、根据执行控制模板指令访问Web应用的页面指定区域或执行脚本位置;
步骤5)、根据执行控制模板指令,按原Web应用的执行步骤或执行逻辑分步调用动态解析执行容器和浏览器内核完成执行操作;
步骤6)、保留原Web应用业务的逻辑,按照业务逻辑和已经拆分存放的中间过程数据,并根据已经执行的JS片段、HTML片段以及CSS片段的中间结果,以及余下部分JS片段、HTML片段、CSS片段生成新的Web应用页面的基本操作和展示内容;
步骤7)、将步骤6)所生成的新的Web应用页面由页面重写器对应移动浏览器特点加入页面UI并排版,通过接入控制器返回给移动终端的浏览器。
30.一种动态解析执行容器,应用在如权利要求18-21、24、25之一所述的装置中,包括:模板调用模块、模板配置或调用控制模块、拦截规则模块;其特征在于:
所述模板调用模块根据所述页面拦截规则器所返回的结果从所述执行控制模板集中调用对应的执行控制模板,并根据所调用的执行控制模板对所拦截的Web应用的原始页面加以处理;
所述模板配置或调用控制模块用于实现对执行控制模板集中各个执行控制模板的配置,或对原Web应用中可执行片段的组织调度;
所述拦截规则模块用于记录Web应用的原始页面的地址和其内部各子页面的地址,并在动态解析执行过程中拦截Web应用的原始页面;
所述模板调用模块包括识别执行片段单元、管理调用次序单元、调用配置单元;其中,
所述的识别执行片段单元用于从Web应用的原始页面中识别出可执行代码片段;
所述的管理调用次序单元根据Web应用的原始执行逻辑确定Web应用中的执行代码片段的执行次序;
所述的调用配置单元用于对动态解析后所生成的Web应用的新的页面的功能进行配置;
所述模板配置或调用控制模块包括模板结构化单元、执行关系控制单元、执行片段组织单元以及中间结果工作空间;其中,
所述的模板结构化单元用于对原Web应用的页面和新生成的Web应用的页面在页面结构和功能上进行对应;
所述的执行关系控制单元用于获取原Web应用页面的执行过程,并按此执行过程执行页面中的各个可执行片段;
所述的执行片段组织单元用于控制各片段代码执行逻辑化过程和调用关系;
所述中间结果工作空间用于执行并保持中间数据。
31.一种利用权利要求30所述的动态解析执行容器对Web应用进行动态解析执行方法,包括:
步骤1):首先,根据所述页面拦截规则器所返回的结果从所述执行控制模板集中调用对应的执行控制模板;
步骤2):其次,通过所述Http访问器得到用户所要访问的Web应用的原始页面数据;
步骤3):接着,由所述拦截规则模块根据所述执行控制模板拦截Web应用的原始页面数据,并根据所述执行控制模板中的相关指令修改和裁制Web应用的原始页面数据;
步骤4):最后,生成所述Web应用的新的页面。
32.根据权利要求31所述的方法,其特征在于:
该步骤3)进一步包括:
将所得到的Web应用的原始页面数据存放到中间结果工作空间中,在该空间中,通过调用识别执行片段单元识别所述Web应用的原始页面数据中的可执行片段,通过调用管理调用次序单元确定所述可执行片段的执行次序,通过调用所述的调用配置单元确定Web应用的新生成页面所具有的功能;
通过调用模板结构化单元对Web应用的原始页面和新生成的页面在页面结构和功能上进行对应,通过调用执行关系控制单元确保页面中的各个可执行片段按照确定的执行次序执行,通过调用执行片段组织单元控制各片段代码执行逻辑化过程和调用关系。
33.根据权利要求31或32所述的方法,其特征在于:
在步骤3)的所述的修改和裁制过程中,应当符合所述Web应用的原有逻辑,保留页面操作涉及的执行代码、子页面功能和页面所指向的其他执行页面。
CN201410514276.1A 2014-09-29 2014-09-29 动态解析Web应用的装置和方法 Active CN104317570B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410514276.1A CN104317570B (zh) 2014-09-29 2014-09-29 动态解析Web应用的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410514276.1A CN104317570B (zh) 2014-09-29 2014-09-29 动态解析Web应用的装置和方法

Publications (2)

Publication Number Publication Date
CN104317570A CN104317570A (zh) 2015-01-28
CN104317570B true CN104317570B (zh) 2017-12-12

Family

ID=52372805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410514276.1A Active CN104317570B (zh) 2014-09-29 2014-09-29 动态解析Web应用的装置和方法

Country Status (1)

Country Link
CN (1) CN104317570B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598554B (zh) * 2015-10-14 2021-03-23 上海汽车集团股份有限公司 一种代码生成装置
CN106095869B (zh) 2016-06-03 2020-11-06 腾讯科技(深圳)有限公司 广告信息处理方法、用户设备、后台服务器及系统
CN107517259A (zh) * 2017-08-28 2017-12-26 四川长虹电器股份有限公司 一种简易Web服务器实现方法
CN111092883B (zh) * 2019-12-16 2022-08-19 重庆锐云科技有限公司 用户访问记录自动生成方法、装置、网络设备及存储介质
CN113377419B (zh) * 2021-05-31 2024-07-26 同盾科技有限公司 一种业务处理方法、装置、可读存储介质及电子设备
CN113904962B (zh) * 2021-12-08 2022-03-18 统信软件技术有限公司 一种资源访问方法、装置及计算设备
CN115756421A (zh) * 2022-11-23 2023-03-07 广州市保伦电子有限公司 一种修改页面样式的方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101178716A (zh) * 2007-11-19 2008-05-14 优视动景(北京)技术服务有限公司 微浏览器处理JavaScript的方法及微浏览器
CN102487403A (zh) * 2010-12-03 2012-06-06 腾讯科技(深圳)有限公司 由服务器端执行js的方法和装置
CN103544209A (zh) * 2013-08-26 2014-01-29 深圳市融创天下科技股份有限公司 访问网页的方法和系统
CN103677951A (zh) * 2013-12-11 2014-03-26 北京掌中经纬技术有限公司 一种JavaScript脚本的执行过程控制方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101178716A (zh) * 2007-11-19 2008-05-14 优视动景(北京)技术服务有限公司 微浏览器处理JavaScript的方法及微浏览器
CN102487403A (zh) * 2010-12-03 2012-06-06 腾讯科技(深圳)有限公司 由服务器端执行js的方法和装置
CN103544209A (zh) * 2013-08-26 2014-01-29 深圳市融创天下科技股份有限公司 访问网页的方法和系统
CN103677951A (zh) * 2013-12-11 2014-03-26 北京掌中经纬技术有限公司 一种JavaScript脚本的执行过程控制方法和系统

Also Published As

Publication number Publication date
CN104317570A (zh) 2015-01-28

Similar Documents

Publication Publication Date Title
CN104317570B (zh) 动态解析Web应用的装置和方法
US11144711B2 (en) Webpage rendering method, device, electronic apparatus and storage medium
US20200242186A1 (en) Method and Terminal Device for Extracting Web Page Content
US10754917B2 (en) Method and system for displaying customized webpage on double webview
US7496497B2 (en) Method and system for selecting web site home page by extracting site language cookie stored in an access device to identify directional information item
US9984408B1 (en) Method, medium, and system for live video cooperative shopping
US9485240B2 (en) Multi-account login method and apparatus
CN104978358B (zh) 桌面展示网页片段的方法及截取网页片段至桌面展示系统
CN103838558B (zh) 网站建站系统及方法、访问网站的方法及网页适配系统
US10210026B2 (en) Enterprise tools enhancements
CN110855766A (zh) 一种访问Web资源的方法、装置及代理服务器
CN104270443B (zh) 一种能够动态解析Web应用的云计算系统及方法
US20210209526A1 (en) Landing page processing method, device and medium
CN104156421B (zh) 页面的展现方法、装置及系统
CN111431767A (zh) 多浏览器资源同步方法、装置、计算机设备和存储介质
JP5151696B2 (ja) ユニフォームリソースロケータ情報を書き換えるプログラム
CN106294760A (zh) 表单处理方法及服务器、客户端
RU2634221C2 (ru) Способ и устройство для отрисовки представления электронного документа на экране
CN105354269B (zh) 基于反向代理及内容过滤的Web应用语言本地化方法和系统
US20130086694A1 (en) Virtual federation of remote portals
CN110738024A (zh) 将WebAPP转换为API服务接口的方法
US11716405B1 (en) System and method for identifying cache miss in backend application
JP5737249B2 (ja) 負荷シミュレーション装置、シミュレーション装置、負荷シミュレーション方法、シミュレーション方法及びプログラム
CN108376090A (zh) 网页图片的操作方法、装置、终端及存储介质
CN103677951A (zh) 一种JavaScript脚本的执行过程控制方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant