一种浏览器兼容性的调整方法及装置与流程

文档序号:11918019阅读:147来源:国知局
一种浏览器兼容性的调整方法及装置与流程

本发明属于互联网技术领域,尤其涉及一种浏览器兼容性的调整方法及装置。



背景技术:

目前,大部分的互联网应用均采用了基于B/S(Browser/Server,浏览器/服务器)的架构模式。这种B/S模式将系统功能实现的核心部分集中到了服务器上,因此简化了系统的开发、维护和使用。基于B/S模式的互联网应用,用户的客户机上只要安装有浏览器软件,就可以在任何地方对该互联网应用进行操作使用,而无须安装专门对应于该应用的客户端软件。因此,提高了用户对该互联网应用的使用体验。

在B/S模式下,浏览器在解析互联网应用所提供的前端HTML(Hypertext MarkupLanguage,超文本标记语言)页面代码时,经常会出现因方法调用出错而导致网页解析失败、网页停止运行的现象发生,该现象归结于浏览器的兼容性问题。浏览器的兼容性问题需要由浏览器厂商来适配解决,或者,由互联网应用的前端开发人员直接修复网页中的错误代码。然而,这种方法将导致如下问题出现:在厂商已经在浏览器中适配完成该解析报错问题的同时,前端开发人员又修改了网页代码,则此时将容易产生另外一种未知错误,降低了互联网应用的高可用性与可靠性。



技术实现要素:

本发明实施例提供一种浏览器兼容性的调整方法及装置,旨在解决目前因浏览器无法兼容各种前端页面代码,从而导致提供前端页面代码的互联网应用的可靠性低下的问题。

第一方面,提供了一种浏览器兼容性的调整方法,包括:获取浏览器代码中的报错流程分支;获取代码报错记录中的各个方法名;分别生成每个所述方法名对应的逻辑代码;将每段所述逻辑代码添加至所述报错流程分支中,以使所述浏览器检测到基于所述方法名的调用错误时,根据所述报错流程分支中所述方法名对应的所述逻辑代码做出响应。

在第一方面的第一种可能的实现方式中,所述将每段所述逻辑代码添加至所述报错流程分支中包括:建立第一代码文件;将每段所述逻辑代码存入所述第一代码文件;在所述报错流程分支中,添加对应于所述第一代码文件的解析接口,以将每段所述逻辑代码通过所述解析接口间接添加至所述报错流程分支中。

结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一代码文件为可扩展标记语言XML文件。

结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述在所述报错流程分支中,添加对应于所述第一代码文件的解析接口包括:生成所述XML文件的解析接口;根据所述解析接口,获取XML解析模块代码;将所述XML解析模块代码添加至所述报错流程分支中。

在第一方面的第四种可能的实现方式中,所述分别生成每个所述方法名对应的逻辑代码包括:对于每个所述方法名,生成对应该方法名的一个空值。

第二方面,提供了一种浏览器兼容性的调整装置,包括:第一获取单元,用于获取浏览器代码中的报错流程分支;第二获取单元,用于获取代码报错记录中的各个方法名;生成单元,用于分别生成每个所述方法名对应的逻辑代码;添加单元,用于将每段所述逻辑代码添加至所述报错流程分支中,以使所述浏览器检测到基于所述方法名的调用错误时,根据所述报错流程分支中所述方法名对应的所述逻辑代码做出响应。

在第二方面的第一种可能的实现方式中,所述添加单元包括:建立子单元,用于建立第一代码文件;存储子单元,用于将每段所述逻辑代码存入所述第一代码文件;添加子单元,用于在所述报错流程分支中,添加对应于所述第一代码文件的解析接口,以将每段所述逻辑代码通过所述解析接口间接添加至所述报错流程分支中。

结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一代码文件为可扩展标记语言XML文件。

结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述添加子单元具体用于:生成所述XML文件的解析接口;根据所述解析接口,获取XML解析模块代码;将所述XML解析模块代码添加至所述报错流程分支中。

在第二方面的第四种可能的实现方式中,所述生成单元包括:生成子单元,用于对于每个所述方法名,生成对应该方法名的一个空值。

本发明实施例中,通过获取代码报错记录中的各个方法名,生成每个方法名对应的逻辑代码,并将每段逻辑代码添加至浏览器的报错流程分支中,保证了浏览器在解析不同的网页代码时,如果在网页代码中出现了关于这些方法名调用出错的情况,浏览器依然能够根据正常的处理逻辑,执行报错流程分支,从而读取报错流程分支中与出错方法名相同的一个方法名所对应的逻辑代码,并正常作出响应,因此,提高了浏览器的兼容性,避免了因兼容性问题而导致网页解析失败、网页停止运行的现象发生,由此也进一步提高了提供该网页的互联网应用的高可用性与可靠性。

附图说明

图1是本发明实施例提供的浏览器兼容性的调整方法的实现流程图;

图2是本发明实施例提供的浏览器兼容性的调整方法S104的具体实现流程图;

图3是本发明实施例提供的浏览器兼容性的调整方法S203的具体实现流程图;

图4是本发明实施例提供的浏览器兼容性的调整装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在本发明实施例中,浏览器作为一种工具软件,可以运行在计算机、笔记本电脑、手机、平板电脑等终端中,其作为互联网的入口,通过显示网页服务器或者文件系统所提供的网页内容,能够让用户与这些网页内容进行交互。

图1示出了本发明实施例所述的浏览器兼容性的调整方法的实现流程,详述如下:

在S101中,获取浏览器代码中的报错流程分支。

在一个程序代码的解析过程中,对于要先做判断再选择的问题就要使用分支结构。分支结构的执行要依据一定的条件来选择执行路径或程序流程,因此,能够根据不同的程序流程来选择适当的分支语句。每个分支所要执行的功能不同,在本实施例中,报错流程分支所要执行的功能是返回错误提示。因此,浏览器在调用了错误的页面代码时,能够自动选择该报错流程分支,并读取该分支中的语句代码。

由于一个浏览器的运行代码中,具有多个不同的流程分支,因此,通过自动识别或根据用户输入的分支选择指令,在众多的流程分支中,筛选出哪个分支是执行出错提示的分支。上述的筛选结果即为报错流程分支,其实质上是一段或多段流程代码的集合。

在S102中,获取代码报错记录中的各个方法名。

本实施例中,方法名具体指基于JS(JavaScript)引擎的代码中的方法名。JS中可以为对象定义的方法有以下三种:私有方法、实例方法和类方法。每个方法在JS动态调用的过程中,最常用的方式是通过该方法对应的名称字符串来调用,则该名称字符串称为该方法的方法名。

收集网页的历史访问日志,该日志中记载有各个用户在使用其终端浏览器访问不同网页时的报错信息。从历史访问日志中筛选出因方法名调用出错而导致浏览器显示JS错误的所有报错信息。此时,确定出各个曾经出现过错误的方法名,即,在报错信息中提取各个方法名。

除了从历史访问日志中提取方法名之外,对容易在网页中出现调用错误的方法名,开发者可以自行总结并记录,因此,基于其总结的经验信息,本装置还能够通过接收开发者在进行自我总结之后所输入的信息来获得各个方法名。

综上,用户总结的方法名记录以及该历史访问日志即为代码报错记录。

在S103中,分别生成每个所述方法名对应的逻辑代码。

当某一事件驱动而导致某个方法被调用时,可重复使用的代码块即为该方法的逻辑代码。又因为方法名能够用以识别和区分不同的方法,因此,若要使某个方法存在并且能够被正常调用,则在其方法名存在后,还需要对应有一段新的逻辑代码。

在本实施例中,每个方法名对应的逻辑代码可以相同也可以不同。对于其中的一个方法名,针对其在被错误调用过程中所希望完成的功能,可生成描述该功能的简短代码,从而以执行较少代码的方式,将调用该方法名所得到的结果返回给用户。

生成逻辑代码,也可称为生成需要兼容的一个页面方法的代码。

特别地,除了生成方法名对应的逻辑代码之外,还可以不生成任意逻辑代码,使得浏览器调用到没有对应逻辑代码的方法时,能够依照默认的处理逻辑来执行处理。

作为本发明的一个实施例,所述分别生成每个所述方法名对应的逻辑代码包括:

对于每个所述方法名,生成对应该方法名的一个空值。

即,方法名对应的逻辑代码仅为一个简单的空值。除了将每个所述方法名对应的逻辑代码设置为一个空值之外,还可以将其中的一个或多个所述方法名所对应的逻辑代码设置为空值。使得浏览器在解析方法名对应的逻辑代码时,能够迅速返回长度较短的空值数据响应结果,从而能够在避免网页停止运行的同时,提高对网页的解析效率。

在S104中,将每段所述逻辑代码添加至所述报错流程分支中,以使浏览器检测到基于所述方法名的调用错误时,根据所述报错流程分支中所述方法名对应的所述逻辑代码做出响应。

将每段逻辑代码及其对应的方法名加入所述报错流程分支的流程代码集合的最前面,使得浏览器依照顺序执行该流程代码集合时,能够先读取该集合中最前面的逻辑代码。

例如,在网页代码的执行过程中,当有A类的对象要调用B类的方法b时,通常情况下,浏览器将跳转至报错流程分支,并解析该分支中的代码,从而能够直接产生JS报错,并停止运行该网页。而在本实施例中,由于报错流程分支中包含了预先设置的各个方法名对应的逻辑代码,因此,浏览器将查找该分支中是否存在方法名b,若是,则执行方法名b所对应逻辑代码,从而返回代码的解析结果,并继续执行该网页中的后续处理逻辑。

本发明实施例中,通过获取代码报错记录中的各个方法名,生成每个方法名对应的逻辑代码,并将每段逻辑代码添加至浏览器的报错流程分支中,保证了浏览器在解析不同的网页代码时,如果在网页代码中出现了关于这些方法名调用出错的情况,浏览器依然能够根据正常的处理逻辑,执行报错流程分支,从而读取报错流程分支中与出错方法名相同的一个方法名所对应的逻辑代码,并正常作出响应,因此,提高了浏览器的兼容性,避免了因兼容性问题而导致网页解析失败、网页停止运行的现象发生,由此也进一步提高了提供该网页的互联网应用的高可用性与可靠性。

作为本发明的一个实施例,如图2所示,在S104中,所述将每段所述逻辑代码添加至所述报错流程分支中包括:

在S201中,建立第一代码文件。

在本实施例中,第一代码文件可以为各种类型的纯文本格式文件,例如JSON(JavaScript Object Notation)文件、HTML文件、XML(Extensible Markup Language,可扩展标记语言)文件等。

特别地,作为本发明的一个实施例,所述第一代码文件为可扩展标记语言XML文件。

由于XML具有统一的标准语法,任何系统和产品都能够支持XML文件,并且不同的产品之间都具有统一的格式和语法。因此,将XML文件作为第一代码文件,能够适用于不同类型的浏览器之中。

在S202中,将每段所述逻辑代码存入所述第一代码文件。

第一代码文件的文件内容为S103中生成的每个方法名所对应的逻辑代码。逻辑代码作为方法名所对应的内部方法,统一存储于第一代码文件中。

在S203中,在所述报错流程分支中,添加对应于所述第一代码文件的解析接口,以将每段所述逻辑代码通过所述解析接口间接添加至所述报错流程分支中。

在一个第一系统中,如果需要调用第二系统中的文件、程序,则需要在第一系统中开放一个与外部程序进行连接的代码接口,该接口即为本实施例中所述的解析接口。

将对应于第一代码文件的解析接口加入报错流程分支的代码集合后,当浏览器执行报错流程分支中的代码集合时,能够根据该集合中关于第一代码文件的解析接口及关于第一代码文件的地址参数,搜索到第一代码文件的实际位置并调用该第一代码文件中的内容。因此,第一代码文件中每个方法名对应的逻辑代码能够被间接执行或间接使用,其相当于实现了将每段逻辑代码添加至报错流程分支中。其中,所述地址参数可以存于浏览器代码中的各个位置,如报错流程分支中。

作为本发明的一个实施例,图3示出了本发明实施例提供的浏览器兼容性的调整方法S203的具体实现流程,详述如下:

在S301中,生成所述XML文件的解析接口。

本实施例中,第一代码文件具体为XML文件。对于该类型的文件,需要有特定的对应于XML类型文件的解析接口才能实现文件的跨平台调用。因此,在将对应于XML文件的解析接口添加至报错流程分支之前,还需预先生成对应了该XML文件的解析接口。

在S302中,根据所述解析接口,获取XML解析模块代码。

XML文件具有其对应的一套标准语法。为了避免因异常状态导致当前浏览器无法解析XML文件中代码内容的现象发生,生成XML解析模块代码,从而能够根据该模块代码,解析XML文件中的各段代码。并且,XML解析模块代码中提供了上述对应于XML文件的解析接口,还可包括上述XML文件的存放地址参数。

在S303中,将所述XML解析模块代码添加至所述报错流程分支中。

同理,将XML解析模块代码加入报错流程分支的流程代码集合的较前位置,位于报错流程分支的原始处理逻辑的上方。

在本实施例中,当浏览器执行到某个A类型对象要调用一个方法时,若这个方法是该对象所属类中没有的方法,则浏览器执行报错流程分支,通过解析接口调用XML文件,查找该XML文件中是否具有与该方法名相匹配的一个方法及逻辑代码。若该XML文件中具有与该方法名相匹配的一个方法及逻辑代码,则执行该XML文件中所述匹配的逻辑代码,用以代替原A类型对象调用出错的方法;否则,浏览器依照原有的报错机制执行,即,读取报错流程分支后的后续处理逻辑,返回JS错误,并停止网页的运行。其中,上述匹配的过程表示,只要XML文件中存在有与该对象调用的方法名相同的一个方法名,则表示匹配成功,即,该XML文件中具有与该方法名相匹配的一个方法及逻辑代码。

在解析网页代码的过程中,如果调用了一个错误的A方法,则浏览器有可能会奔溃,通过在xml文件内存入具有相同名字的一个A方法,浏览器可以正常返回信息,从而避免了浏览器奔溃,并能够继续执行网页中的后续代码,避免了网页停止运行,使得浏览器与前端代码的兼容度更高,不会因报错而停止运行,执行的速度更快。

通过本发明实施例提供的浏览器兼容性的调整方法,若因浏览器无法兼容网页,而出现方法调用出错时,前端开发人员无需逐一修复网页代码,从而不会导致未知的新问题出现。通过在报错流程分支中加入内部方法,在浏览器中,所有互联网应用的页面代码都能够在最大程度上得以运行,使得原先可能会出现调用出错的页面代码均可以正常解析,因此提高了互联网应用的可靠性。此外,在报错流程分支中所添加的逻辑代码是直接编译完成的运行代码,故无需再进行浏览器原生代码的编译过程,降低了在浏览器代码修改过程中的耗时,提高了修复效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

图4示出了本发明实施例提供的浏览器兼容性的调整装置的结构框图,该装置可以位于手机、计算机、平板电脑、笔记本电脑等终端中,用于运行本发明图1至图3实施例所述的浏览器兼容性的调整方法。为了便于说明,仅示出了与本实施例相关的部分。

参照图4,该装置包括:

第一获取单元41,用于获取浏览器代码中的报错流程分支。

第二获取单元42,用于获取代码报错记录中的各个方法名。

生成单元43,用于分别生成每个所述方法名对应的逻辑代码。

添加单元44,用于将每段所述逻辑代码添加至所述报错流程分支中,以使浏览器检测到基于所述方法名的调用错误时,根据所述报错流程分支中所述方法名对应的所述逻辑代码做出响应。

可选地,所述添加单元44包括:

建立子单元,用于建立第一代码文件。

存储子单元,用于将每段所述逻辑代码存入所述第一代码文件。

添加子单元,用于在所述报错流程分支中,添加对应于所述第一代码文件的解析接口,以将每段所述逻辑代码通过所述解析接口间接添加至所述报错流程分支中。

可选地,所述第一代码文件为可扩展标记语言XML文件。

可选地,所述添加子单元具体用于:

生成所述XML文件的解析接口;

根据所述解析接口,获取XML解析模块代码;

将所述XML解析模块代码添加至所述报错流程分支中。

可选地,所述生成单元43具体用于:

对于每个所述方法名,生成对应该方法名的一个空值。

本发明实施例中,通过获取代码报错记录中的各个方法名,生成每个方法名对应的逻辑代码,并将每段逻辑代码添加至浏览器的报错流程分支中,保证了浏览器在解析不同的网页代码时,如果在网页代码中出现了关于这些方法名调用出错的情况,浏览器依然能够根据正常的处理逻辑,执行报错流程分支,从而读取报错流程分支中与出错方法名相同的一个方法名所对应的逻辑代码,并正常作出响应,因此,提高了浏览器的兼容性,避免了因兼容性问题而导致网页解析失败、网页停止运行的现象发生,由此也进一步提高了提供该网页的互联网应用的高可用性与可靠性。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1