一种浏览器运行代码块的方法、装置、设备及介质制造方法及图纸

技术编号:37276840 阅读:12 留言:0更新日期:2023-04-20 23:44
本申请公开了一种浏览器运行代码块的方法、装置、设备及介质,根据目标系统的标识信息确定目标系统的第一新特性列表,根据目标浏览器的类型信息及版本信息,筛选出不支持所述目标浏览器的第二新特性列表,然后使目标浏览器运行第二新特性列表中各个新特性各自对应的polyfill代码块。本申请按需加载polyfill代码块,只加载目标系统使用的、当前运行目标浏览器所需要的polyfill代码块。解决了一旦系统部署上线后,再遇到兼容性问题时,只能通过重新发布系统来解决的问题。发布系统来解决的问题。发布系统来解决的问题。

【技术实现步骤摘要】
一种浏览器运行代码块的方法、装置、设备及介质


[0001]本申请涉及浏览器运行
,尤其涉及一种浏览器运行代码块的方法、装置、设备及介质。

技术介绍

[0002]在全球广域网web系统开发中,常常遇到浏览器兼容性问题。浏览器兼容性问题主要有以下两类:1)不同浏览器以及同一浏览器的不同版本对HTML规范、CSS规范、JAVASCRIPT规范的底层实现不一致,导致同样的代码在不同的浏览器表现不一致;2)程序设计语言ECMAScript标准不断提出一些新特性,不同的浏览器以及同一浏览器的不同版本对新特性的支持程度、支持范围不一致,导致使用了新特性的代码在部分浏览器中运行报错。
[0003]为了解决上述问题,现有的技术方法主要包括以下两种:全量polyfill代码块方法和指定浏览器范围方法。全量polyfill代码块方法,即对ECMAScript6以上的新特性均提供对应的polyfill方法,使之可以运行在绝大部分浏览器。现有技术存在的问题是,全量polyfill方法,无论当前浏览器是否支持,以及系统是否使用了新特性,均全部引用,因此polyfill文件会比较大且冗余,会影响页面加载效率,导致首屏加载慢。指定浏览器范围方法,对用户访问系统提出了一些要求,可能会导致部分不满足要求的用户流失。当指定的浏览器范围比较大时,绝大部分新特性的代码均会转化,从而不能充分利用新版的先进浏览器的功能。
[0004]以上两种解决方法均是在编译态进行的,一旦系统部署上线后,再遇到兼容性问题时,只能通过重新发布系统来解决。r/>
技术实现思路

[0005]本申请实施例提供了一种浏览器运行代码块的方法、装置、设备及介质,用以解决现有的解决浏览器兼容性的方法均是在编译态进行的,一旦系统部署上线后,再遇到兼容性问题时,只能通过重新发布系统来解决的问题。
[0006]本申请提供了一种浏览器运行代码块的方法,所述方法包括:
[0007]通过目标浏览器运行目标系统的目标代码,访问所述目标系统时,获取所述目标系统的标识信息、所述目标浏览器的类型信息及版本信息;
[0008]根据所述目标系统的标识信息确定所述目标系统的第一新特性列表;根据所述目标浏览器的类型信息及版本信息,从所述第一新特性列表中筛选出不支持所述目标浏览器的第二新特性列表;
[0009]确定与所述第二新特性列表中各个新特性各自对应的polyfill代码块,将各个polyfill代码块输出至所述目标浏览器,使所述目标浏览器运行所述各个polyfill代码块。
[0010]进一步地,所述获取所述目标系统的标识信息、所述目标浏览器的类型信息及版
本信息之前,所述方法还包括:
[0011]在完成目标系统的代码编写后,对所述代码进行扫描分析,获取所述目标系统的第一新特性列表,并建立所述目标系统的标识信息与所述第一新特性列表的对应关系。
[0012]进一步地,所述对所述代码进行扫描分析,获取所述目标系统的第一新特性列表包括:
[0013]读取所述目标系统的代码源文件,获取所述目标系统的代码,将所述代码解析为抽象语法树AST,遍历AST节点得到所述目标系统的第一新特性列表。
[0014]进一步地,所述获取所述目标浏览器的类型信息及版本信息包括:
[0015]通过分析所述目标浏览器的用户代理userAgent,获取所述目标浏览器的类型信息及版本信息。
[0016]进一步地,所述将各个polyfill代码块输出至所述目标浏览器,使所述目标浏览器运行所述各个polyfill代码块包括:
[0017]将所述各个polyfill代码块进行组装生成一个JS文件,将所述JS文件输出至所述目标浏览器,使所述目标浏览器运行所述JS文件。
[0018]另一方面,本申请提供了一种浏览器运行代码块的装置,所述装置包括:
[0019]获取模块,用于通过目标浏览器运行目标系统的目标代码,访问所述目标系统时,获取所述目标系统的标识信息、所述目标浏览器的类型信息及版本信息;
[0020]确定模块,用于根据所述目标系统的标识信息确定所述目标系统的第一新特性列表;根据所述目标浏览器的类型信息及版本信息,从所述第一新特性列表中筛选出不支持所述目标浏览器的第二新特性列表;
[0021]运行模块,用于确定与所述第二新特性列表中各个新特性各自对应的polyfill代码块,将各个polyfill代码块输出至所述目标浏览器,使所述目标浏览器运行所述各个polyfill代码块。
[0022]进一步地,所述获取模块,还用于在完成目标系统的代码编写后,对所述代码进行扫描分析,获取所述目标系统的第一新特性列表,并建立所述目标系统的标识信息与所述第一新特性列表的对应关系。
[0023]进一步地,所述获取模块,具体用于读取所述目标系统的代码源文件,获取所述目标系统的代码,将所述代码解析为抽象语法树AST,遍历AST节点得到所述目标系统的第一新特性列表。
[0024]进一步地,所述确定模块,具体用于通过分析所述目标浏览器的用户代理userAgent,获取所述目标浏览器的类型信息及版本信息。
[0025]进一步地,所述运行模块,具体用于将所述各个polyfill代码块进行组装生成一个JS文件,将所述JS文件输出至所述目标浏览器,使所述目标浏览器运行所述JS文件。
[0026]另一方面,本申请提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0027]存储器,用于存放计算机程序;
[0028]处理器,用于执行存储器上所存放的程序时,实现上述任一项所述的方法步骤。
[0029]另一方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法步骤。
[0030]本申请提供了一种浏览器运行代码块的方法、装置、设备及介质,所述方法包括:通过目标浏览器运行目标系统的目标代码,访问所述目标系统时,获取所述目标系统的标识信息、所述目标浏览器的类型信息及版本信息;根据所述目标系统的标识信息确定所述目标系统的第一新特性列表;根据所述目标浏览器的类型信息及版本信息,从所述第一新特性列表中筛选出不支持所述目标浏览器的第二新特性列表;确定与所述第二新特性列表中各个新特性各自对应的polyfill代码块,将各个polyfill代码块输出至所述目标浏览器,使所述目标浏览器运行所述各个polyfill代码块。
[0031]上述的技术方案具有如下优点或有益效果:
[0032]本申请根据目标系统的标识信息确定目标系统的第一新特性列表,根据目标浏览器的类型信息及版本信息,筛选出不支持所述目标浏览器的第二新特性列表,然后使目标浏览器运行第二新特性列表中各个新特性各自对应的polyfill代码块。本申请按需加载polyfill代码块,只加载目标系统使本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种浏览器运行代码块的方法,其特征在于,所述方法包括:通过目标浏览器运行目标系统的目标代码,访问所述目标系统时,获取所述目标系统的标识信息、所述目标浏览器的类型信息及版本信息;根据所述目标系统的标识信息确定所述目标系统的第一新特性列表;根据所述目标浏览器的类型信息及版本信息,从所述第一新特性列表中筛选出不支持所述目标浏览器的第二新特性列表;确定与所述第二新特性列表中各个新特性各自对应的polyfill代码块,将各个polyfill代码块输出至所述目标浏览器,使所述目标浏览器运行所述各个polyfill代码块。2.如权利要求1所述的方法,其特征在于,所述获取所述目标系统的标识信息、所述目标浏览器的类型信息及版本信息之前,所述方法还包括:在完成目标系统的代码编写后,对所述代码进行扫描分析,获取所述目标系统的第一新特性列表,并建立所述目标系统的标识信息与所述第一新特性列表的对应关系。3.如权利要求2所述的方法,其特征在于,所述对所述代码进行扫描分析,获取所述目标系统的第一新特性列表包括:读取所述目标系统的代码源文件,获取所述目标系统的代码,将所述代码解析为抽象语法树AST,遍历AST节点得到所述目标系统的第一新特性列表。4.如权利要求1所述的方法,其特征在于,所述获取所述目标浏览器的类型信息及版本信息包括:通过分析所述目标浏览器的用户代理userAgent,获取所述目标浏览器的类型信息及版本信息。5.如权利要求1所述的方法,其特征在于,所述将各个polyfill代码块输出至所述目标浏览器,使所述目标浏览器运行所述各个polyfill代码块包括:将所述各个polyfill代码块进行组装生成一个JS文件,将所述JS文件输出至所述目标浏览器,使所述目标浏览器运行所述JS文件。6.一种浏览器运行代码块的装置,其特征在于,所述装置包括:获取模块,用于通过目标浏览器运行目标系统的目标代码,访问所述目标系统时,获取所述目标系统...

【专利技术属性】
技术研发人员:张聪萍汤茂安魏柯宁
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1