浏览器的优化方法、系统、计算机设备及可读存储介质与流程

文档序号:28101200发布日期:2021-12-22 11:26阅读:69来源:国知局
浏览器的优化方法、系统、计算机设备及可读存储介质与流程

1.本发明属于浏览器技术领域,涉及一种浏览器的优化方法、系统、计算机设备及可读存储介质。


背景技术:

2.目前一般企业内部大多配套设置有全覆盖的信息系统,如人资管理、财务管控、供应链等,这些信息系统规模大、功能全、数量多。各系统对浏览器兼容能力不同,浏览器种类繁多,运维困难,且兼容性问题会影响业务系统使用。
3.目前市面上为了解决系统兼容性问题,陆续出现了很多类型的双核浏览器,可同时兼容blink+trident两个内核,以解决通过同一浏览器实现不同业务系统应用的兼容性问题。但是该方法对于一些原有框架就有问题的业务应用,内核切换仍无法正常渲染。
4.用户在打开不同浏览器的时候,根据应用的兼容性,启动对应内核对当前访问的业务应用进行渲染。现有的网页优化方案多基于内核的切换来实现,针对不同的页面选择不同的内核进行代码渲染,对于一些因代码问题、浏览器内核版本等问题引起的兼容性问题,无法解决,需要针对特定问题进行浏览器内核的特殊适配改造,造成大量工作量,而且效率较低。
5.对于一些因开发框架问题或主流内核无法支持的页面渲染问题无法进行解决。


技术实现要素:

6.本发明的目的在于解决使用多内核集成的方式无法正确渲染兼容页面的问题,提供一种浏览器的优化方法、系统、计算机设备及可读存储介质。本发明通过在web系统页面,在加载过程中的动态兼容性优化方法,解决因为代码框架引起的业务系统界面渲染异常的问题,实现动态的代码级页面兼容性优化。
7.为达到上述目的,本发明采用以下技术方案予以实现:一种浏览器的优化方法,包括:在通过浏览器访问目标业务系统时,判断是否满足代码优化触发条件;在满足代码优化触发条件时,确定与所述目标业务系统对应的目标代码优化策略;根据所述目标代码优化策略对所述浏览器进行代码级的优化处理,并以优化处理后的代码渲染所述目标业务系统对应的网页。
8.一种浏览器的优化系统,包括:触发条件判断模块,用于在通过浏览器访问目标业务系统时,判断是否满足代码优化触发条件;优化策略确定模块,用于在满足代码优化触发条件时,确定与所述目标业务系统对应的目标代码优化策略;代码优化处理模块,用于根据所述目标代码优化策略对所述浏览器进行代码级的
优化处理,并以优化处理后的代码渲染所述目标业务系统对应的网页。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
11.与现有技术相比,本发明具有以下有益效果:本发明在通过浏览器访问目标业务系统且满足代码优化触发条件时,确定与目标业务系统对应的目标代码优化策略,并根据确定的目标代码优化策略对浏览器进行代码级的优化处理,再以优化处理后的代码来渲染目标业务系统对应的网页,如此,基于代码动态优化方法,可对因为代码异常的网页兼容性问题导致的前端界面渲染异常进行快速修复,确保业务正常实现,提高了浏览器的稳定性。
12.在进行代码级优化的过程中,结合代码优化策略、策略库动态优化、运行时代码注入等方式进行多种方式的全面代码级优化,提高了代码优化的有效性。
13.进一步的,本发明以优化处理后的代码渲染所述目标业务系统对应的网页,在遇到兼容性问题时,如果无法找到现有的策略,基于目前内核版本,对于前端代码的语法和错误信息进行分析和动态修改,以适配目前的内核,同时对执行的优化代码,提取特征值,把适配的兼容性策略合并到远程的代码级优化策略库构建策略库在本地和远程存储。
14.进一步的,本发明在渲染当前用户访问的页面时,通过前端代码缺陷分析模块对前端的dom元素以及js文件进行分析,内核的自动切换进行兼容性适配,如果无法适配,对前端代码的语法、错误信息进行分析,结合本地和远程的策略库,识别是否包含优化策略,如果能找到优化策略,动态加载优化代码,在前端代码内注入优化代码,进行动态渲染,解决兼容性问题。
15.进一步的,本发明可以动态地解决前端界面兼容性问题,对于内核或者错误引起的问题,不需要修改浏览器客户端,而是通过动态地修改策略库和远程的优化分析引擎,动态地生成可执行的前端界面兼容性优化代码,在前端页面快速植入。一是提高了页面兼容性处理能力,二是降低了因为兼容性问题带来的经济成本。
附图说明
16.为了更清楚的说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
17.图1为本发明一种浏览器的优化方法的流程图。
18.图2为本发明渲染所述目标业务系统对应的网页的流程图。
19.图3为本发明前端代码缺陷分析的原理图。
20.图4为本发明页面缺陷代码自动处理方法的流程图。
21.图5为本发明一种浏览器的优化系统的原理图。
具体实施方式
22.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
23.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
25.在本发明实施例的描述中,需要说明的是,若出现术语“上”、“下”、“水平”、“内”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
26.此外,若出现术语“水平”,并不表示要求部件绝对水平,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。
27.在本发明实施例的描述中,还需要说明的是,除非另有明确的规定和限定,若出现术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
28.下面结合附图对本发明做进一步详细描述:参见图1,本发明实施例公开了一种浏览器的优化方法,包括以下步骤:s01,在通过浏览器访问目标业务系统时,判断是否满足代码优化触发条件;业务系统包含多种类型的业务系统,所述目标业务系统可以是所有的业务系统,也可以是其中某个或某几个业务系统,也就是说,本发明实施例可以针对所有业务系统进行代码级优化,或者也可以针对部分特定的业务系统进行代码级优化,在具体实施过程中可根据实际需求灵活配置。
29.所述判断是否满足代码优化触发条件,可以采用以下两种实施例实现:(1)判断通过所述浏览器配置的浏览器内核是否能够渲染所述目标业务系统请求的页面;若否,则确定满足所述代码优化触发条件。通过判断当前内核能否渲染页面的情况,来判断是否满足代码优化触发条件,扩展了适用范围。其中,一般常用的浏览器内核有:trident、gecko、presto、webkit、blink等。
30.(2)从预置的业务系统库中查找是否存在所述目标业务系统;预置的业务系统库能够使用户按需进行灵活配置。其中,所述预置的业务系统库为需要进行代码优化处理的业务系统的集合;若存在,则确定满足所述代码优化触发条件。
31.s02,在满足代码优化触发条件时,确定与所述目标业务系统对应的目标代码优化策略,采用以下两种方法:(1)将本地代码级优化策略库的特征信息与远程代码优化策略库的特征信息进行比对,并根据特征信息差异更新所述本地代码级优化策略库;从更新后的本地代码级优化策略库中确定与所述目标业务系统的特征值对应的目标代码优化策略。业务系统的特征值包括业务系统的名称、业务系统的url、业务系统的摘要信息中的至少一种。
32.(2)从本地存储的代码级优化策略库中确定与所述目标业务系统对应的目标代码优化策略;其中,所述代码级优化策略库包括前期已经配置的需要进行代码优化的业务系统、页面、页面缺陷以及优化脚本。所述代码级优化策略库通过自定义维护配置或自动维护配置。所述自定义维护配置包括自定义配置业务系统、业务系统的url以及优化代码。所述自动维护配置包括自动检测业务系统、自动进行代码缺陷发现、优化及上报。
33.根据所述目标代码优化策略对所述浏览器进行代码级的优化处理,采用以下方法实现:从所述代码级优化策略库中加载与所述目标代码优化策略对应的本地策略数据,所述本地策略数据包括所述目标业务系统对应的业务页面以及策略优化代码;基于所述本地策略数据对所述浏览器进行代码级的优化处理。
34.所述基于所述本地策略数据对所述浏览器进行代码级的优化处理,采用以下方法实现:在所述目标业务系统对应的业务页面渲染时加载所述优化代码;将加载的优化代码嵌入到所述目标业务系统的前端代码后对所述目标业务系统的业务页面进行渲染。
35.以优化处理后的代码渲染所述目标业务系统对应的网页,采用以下方法实现:在以所述浏览器配置的浏览器内核对所述目标业务系统的页面进行加载的过程中进行兼容性分析,若无法进行渲染,则对前端的dom元素以及js文件进行前端代码缺陷分析,并确定前端页面缺陷代码;调用缺陷代码优化模型对所述前端页面缺陷代码进行修复,形成修复优化代码;以所述修复优化代码进行界面注入并重新渲染目标业务系统对应的网页。
36.更新所述本地代码级优化策略库的具体方法如下:当页面在渲染时,首先从远程增量更新代码级优化策略,与本地已有的代码级优化策略库合并。获取本地的代码级优化策略库的特征值,与远程的代码级优化策略库特征值进行比对,增量更新本地的代码级优化策略至本地的代码级优化策略库;浏览器启动后加载本地的代码级优化策略库到内存。
37.业务系统的特征值包括业务系统的名称、业务系统的url、业务系统的摘要信息中的至少一种。所述业务系统的摘要信息为md5信息摘要算法,是一种用以提供消息的完整性保护的具体散列函数,用于计算摘要信息。
38.根据业务系统的身份标识,判断此业务系统是否需要进行代码级策略优化;若需要代码级优化,则从策略库加载优化策略、内核策略以及优化代码,通过浏览器内核业务系统页面代码进行重构,然后通过浏览器内核再次对前端界面代码进行渲染;否则,渲染当前用户访问的页面。
39.获取的业务系统地址,首先从内存中加载代码级优化策略库数据,通过比对,判断
当前代码级优化策略库是否有此业务系统的优化策略。如果当前代码级优化策略库中存在此业务系统的代码优化策略,在渲染此业务系统界面之前从代码级优化策略库中加载本策略的数据,包括需要执行优化代码的页面、优化代码。在用户操作需要做代码优化的界面时,在页面渲染期间主动加载优化代码,嵌入到业务系统的前端代码中,然后进行界面渲染。如果当前策略库中不存在此系统的优化策略,正常渲染当前用户访问的页面。
40.所述代码级优化策略库包括前期已经配置的需要进行代码优化的应用系统、页面、页面缺陷以及优化脚本。所述代码级优化策略库通过自定义维护配置或自动维护配置。所述自定义维护配置包括自定义配置业务系统、业务系统的url以及优化代码。所述自动维护配置包括自动检测业务系统、自动进行代码缺陷发现、优化及上报。
41.s03,根据所述目标代码优化策略对所述浏览器进行代码级的优化处理,并以优化处理后的代码渲染所述目标业务系统对应的网页。
42.在渲染目标业务系统之前从代码级优化策略库中加载本地策略库的数据,所述本地策略库的数据包括需要执行优化代码的页面以及优化代码。在执行优化代码的页面时,在页面渲染时加载优化代码,并将加载的优化代码嵌入到业务系统的前端代码中,然后进行界面渲染。
43.渲染所述目标业务系统对应的网页的具体方法如下:如图2所示,在页面加载过程中对每个需要渲染的页面进行兼容性分析,若在切换内核后无法进行渲染,则通过前端代码缺陷分析模块对前端的dom元素以及js文件进行分析,根据代码优化模型利用页面缺陷代码自动处理方法对前端代码进行修复,形成优化代码,进行界面注入并重新渲染,实现页面的渲染。
44.前端代码缺陷分析的具体方法如下:如图3所示,对业务系统进行前端代码渲染,若渲染过程中出现代码报错,则记录报错信息以及dom元素位置、js位置以及js上下文代码等基础数据;通过dom元素位置、js位置以及js上下文代码的特征数据,从预先设置的代码缺陷库内进行检索,若检索到对应的代码缺陷信息,提取对应的缺陷分析方案;代码缺陷分析方案包括错误问题、问题类型、解决方案以及兼容性内核。
45.若检索不到对应的代码缺陷信息,则判断dom元素位置、js位置以及js上下文代码的语法是否符合当前内核所兼容的语法结构,并判断当前代码是否兼容所述当前内核,若不兼容,根据代码转换模型生成代码转换方案;如在chrome内核需要调用a函数,在ie内核需要转换成b函数来实现a函数的功能。若兼容,依托页面代码进行渲染。
46.调用缺陷代码优化模型对所述前端页面缺陷代码进行修复,形成修复优化代码,具体方法如下:根据报错信息在代码级优化策略库中检索是否包括对应的代码优化方案;若包括是对应的代码优化方案,则将所述代码优化方案对应的代码确定为所述修复优化代码;若不包括对应的代码优化方案,则提取不兼容的代码片段;所述不兼容的代码片段包括dom元素数据和js脚本数据。若提取的代码片段是代码语法问题,则通过语法修正对当前的异常脚本进行修正,然后进行渲染测试;若通过渲染测试,则把对应的代码片段编译为优化代码,存储到代码级优化策略库;若语法为代码兼容性问题,则通过内置的预先设定的代码兼容性转换模型,对该代码片段进行内核兼容性修改。
47.页面缺陷代码自动处理方法具体如下:如图4所示,根据报错信息在代码级优化策略库中检索是否涵盖对应的代码优化方案,若存在代码优化方案,则从代码级优化策略库策略库中找到对应的优化代码,进行代码注入,然后重新渲染界面;若代码级优化策略库策略库中不存在对应的代码优化方案,则提取不兼容的代码片段,结合当前的业务系统所需要的页面渲染内核,扫描代码的语法、语义以及脚本规范;若提取的代码片段是代码语法问题而,则通过语法修正对当前的异常脚本进行修正,然后进行渲染测试;若通过渲染测试,则把对应的代码片段编译为优化代码,存储到代码级优化策略库;若语法为代码兼容性问题,则通过内置的预先设定的代码兼容性转换模型,对该代码片段进行内核兼容性修改。所述不兼容的代码片段包括dom元素数据和js脚本数据。
48.本发明的主要用于多内核无法完全兼容的应用场景。使用本发明对某单位63套应用系统的206个有兼容性问题的页面进行全面分析,针对其中15个页面做了代码级优化。基于日常办公机器作为测试环境,通过手动测试方法逐一测试涉及的206个测试页面,并与同为多内核兼容的某浏览器作比较,具体成效见下表:代码级优化后与某浏览器测试对比表基于代码级优化后与某浏览器测试对比表可以看出,某浏览器206个测试页面,正常访问数量191,可兼容页面占比93%,多内核兼容的安全浏览器206个测试页面全部正常访问,实现100%兼容。
49.如图5所示,本发明实施例还公开了一种浏览器的优化系统,包括:触发条件判断模块,用于在通过浏览器访问目标业务系统时,判断是否满足代码优化触发条件;优化策略确定模块,用于在满足代码优化触发条件时,确定与所述目标业务系统对应的目标代码优化策略;代码优化处理模块,用于根据所述目标代码优化策略对所述浏览器进行代码级的优化处理,并以优化处理后的代码渲染所述目标业务系统对应的网页。
50.在一种可能的实施方式中,触发条件确定模块用于判断通过所述浏览器配置的浏览器内核是否能够渲染所述目标业务系统请求的页面;若否,则确定满足所述代码优化触发条件。
51.本发明实施例提供另一触发条件确定模块,用于从预置的业务系统库中查找是否存在所述目标业务系统;其中,所述预置的业务系统库为需要进行代码优化处理的业务系统的集合;若存在,则确定满足所述代码优化触发条件。
52.其中,优化策略确定模块,用于将本地代码级优化策略库的特征信息与远程代码优化策略库的特征信息进行比对,并根据特征信息差异更新所述本地代码级优化策略库;从更新后的本地代码级优化策略库中确定与所述目标业务系统的特征值对应的目标代码优化策略。
53.在一种可能的实施方式中,所述优化策略确定模块,用于从本地存储的代码级优化策略库中确定与所述目标业务系统对应的目标代码优化策略;其中,所述代码级优化策略库包括前期已经配置的需要进行代码优化的业务系统、页面、页面缺陷以及优化脚本。
54.在一种可能的实施方式中,所述代码级优化处理模块用于从所述代码级优化策略库中加载与所述目标代码优化策略对应的本地策略数据,所述本地策略数据包括所述目标业务系统对应的业务页面以及策略优化代码;基于所述本地策略数据对所述浏览器进行代码级的优化处理。
55.在一种可能的实施方式中,所述代码级优化处理模块用于在所述目标业务系统对应的业务页面渲染时加载所述策略优化代码,将加载的策略优化代码嵌入到所述目标业务系统的前端代码后对所述目标业务系统的业务页面进行渲染。
56.在一种可能的实施方式中,网页渲染模块用于在以所述浏览器配置的浏览器内核对所述目标业务系统的页面进行加载的过程中进行兼容性分析,若无法进行渲染,则对前端的dom元素以及js文件进行前端代码缺陷分析,并确定前端页面缺陷代码;调用缺陷代码优化模型对所述前端页面缺陷代码进行修复,形成修复优化代码;以所述修复优化代码进行界面注入并重新渲染所述目标业务系统对应的网页。
57.前端代码缺陷分析模块,用于对所述目标业务系统进行前端代码渲染,若渲染过程中出现代码报错,则记录报错信息以及dom元素位置、js位置以及js上下文代码;通过dom元素位置、js位置以及js上下文代码的特征数据,从预先设置的代码缺陷库内进行检索;若检索到对应的代码缺陷信息,提取对应的代码缺陷分析方案;若检索不到对应的代码缺陷信息,则判断dom元素位置、js位置以及js上下文代码的语法是否符合当前内核所兼容的语法结构,并判断当前代码是否兼容所述当前内核,若不兼容,根据代码转换模型生成代码转换方案。
58.页面代码修复模块,用于根据报错信息在代码级优化策略库中检索是否包括对应的代码优化方案;若包括是对应的代码优化方案,则将所述代码优化方案对应的代码确定为所述修复优化代码;若不包括对应的代码优化方案,则提取不兼容的代码片段;若所述不兼容的代码片段是代码语法问题,则通过语法修正对当前的异常脚本进行修正,并进行渲染测试,若通过渲染测试,则把对应的代码片段编译得到所述修复优化代码;若所述不兼容的代码片段为代码兼容性问题,则通过预先设定的代码兼容性转换模型对提取的代码片段进行内核兼容性修改,以得到所述修复优化代码。
59.本发明一实施例提供的计算机设备。该实施例的计算机设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述各个方法实施例中的步骤,例如图1所示的步骤s01

s03。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
60.所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。
61.所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可包括,但不仅限于,处理器、存储器。
62.所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicati
onspecificintegratedcircuit,asic)、现成可编程门阵列(field

programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
63.所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机设备的各种功能。
64.所述计算机设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
65.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
66.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
67.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
68.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
69.以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1