The present embodiment of the application provides a method, apparatus and terminal device for dynamically providing content of a compatible JS script. The method includes: parsing the acquired JS script code, obtaining a compatible list required to run the JS script code, and comparing the compatible list with the browser identifier in the user request. The minimum compatibility list required by the browser to run the JS script code is obtained; the compatibility code is converted into compatibility code according to the minimum compatibility list, and the compatibility code is combined with the JS script code to respond to the user request. The embodiment of the application can overcome the problems of waste of loading resources and slow execution speed of existing JS scripts compatible with different browsers, and also improve the development efficiency of developers and reduce labor costs.
【技术实现步骤摘要】
动态提供兼容JS脚本内容的方法、装置和终端设备
本申请实施例涉及互联网
,尤其涉及一种动态提供兼容JS脚本内容的方法、装置和终端设备。
技术介绍
随着前端技术的发展,使用JS(JavaScript)的应用发展逐渐变快。面对越来越复杂的应用需要,在JavaScript社区的推动下,JS每年都会推出一些新特性和新功能,为开发人员提供更多的实现能力。但是由于浏览器版本更新周期较长,以及不同浏览器厂商的实现存在不一致之处,导致JS的一些新语言特性和浏览器接口未能在所有浏览器上实现完整支持。因此在大部分浏览器上,为便于开发人员使用JS的一些新语言特性和浏览器接口,需要在JS脚本内容中放置一些兼容代码,以便在检查到浏览器不能原生支持的情况下,通过所述兼容代码提供JS的新语言特性和浏览器接口的支持。通常为了适配大部分的浏览器,避免页面中JS脚本在浏览器中因为使用了新语言特性和浏览器接口而出现异常,开发人员需要将尽可能多的兼容代码放在用户访问页面中。从而实现能够保证大部分浏览器都能正确的运行,但是这会造成JS脚本下载到浏览器的时间更长,增加了用户和服务商的流量负担。并且,JS脚本执行的时间也更长了,界面长时间处于白屏状态,影响用户体验。以及,需要开发人员同过人工分析获得需要的兼容代码,并将所述兼容代码拼接到JS脚本代码中,造成JS脚本的维护成本高。因此,如何实现根据浏览器动态提供兼容JS脚本内容成为现有技术中亟需解决的技术问题。
技术实现思路
本申请实施例提供了一种动态提供兼容JS脚本内容的方法、装置和终端设备,其能够克服现有兼容不同浏览器的JS脚本加载资源浪费和执行速 ...
【技术保护点】
1.一种动态提供兼容JS脚本内容的方法,其特征在于,所述方法包括:对获得的JS脚本代码进行语法分析,获得运行所述JS脚本代码所需的兼容列表;将所述兼容列表和用户请求中浏览器标识符进行比对,获得所述浏览器运行所述JS脚本代码所需的最小兼容列表;根据所述最小兼容列表转化为兼容代码,并将所述兼容代码与所述JS脚本代码进行合并响应所述用户请求。
【技术特征摘要】
1.一种动态提供兼容JS脚本内容的方法,其特征在于,所述方法包括:对获得的JS脚本代码进行语法分析,获得运行所述JS脚本代码所需的兼容列表;将所述兼容列表和用户请求中浏览器标识符进行比对,获得所述浏览器运行所述JS脚本代码所需的最小兼容列表;根据所述最小兼容列表转化为兼容代码,并将所述兼容代码与所述JS脚本代码进行合并响应所述用户请求。2.根据权利要求1所述的方法,其特征在于,所述对获得的JS脚本代码进行语法分析,获得运行所述JS脚本代码源代码所需的兼容列表之前还包括:根据针对访问页面的所述用户请求获得所述JS脚本代码。3.根据权利要求2所述的方法,其特征在于,所述根据针对访问页面的所述用户请求获得所述JS脚本代码包括:获得所述访问页面上的script标签,所述script标签为JS文件链接作为参数拼接成的链接;通过解析所述script标签对应的JS文件链接参数,获得所述JS脚本代码。4.根据权利要求1所述的方法,其特征在于,所述对获得的JS脚本代码进行语法分析,获得运行所述JS脚本代码源代码所需的兼容列表包括:对获得的JS脚本代码进行语法分析,解析成抽象语法树;分析所述抽象语法树,获取其中使用到的新语言特性和浏览器接口,得出运行所述JS脚本代码源代码所需的兼容列表。5.根据权利要求1所述的方法,其特征在于,所述根据所述最小兼容列表转化为兼容代码,并将所述兼容代码与所述JS脚本代码进行合并响应所述用户请求包括:根据所述最小兼容列表,转化为Polyfill兼容代码;使用Combo技术,将所述Polyfill兼容代码与所述JS脚本代码进行合并响应所述用户请求。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:如所述用户请求中浏览器标识符无法识别,则将运行所述JS脚本代码所需的兼容列表转化为兼容代码,并将所述兼容代码与所述JS脚本代码进行合并响应所述用户请求。7.根据权利要求6所述的方法,其特征在于,所述如所述用户请求中浏览器标识符无法识别,则将运行所述JS脚本代码所需的兼容列表转化为兼容代码,并将所述兼容代码与所述JS脚本代码进行合并响应所述用户请求还包括:利用在合并的所述兼容代码与所述JS脚本代码中插入的统计代码,收集所述浏览器运行时需要兼容的接口列表更新所述浏览器标识符,以供下次用户请求识别。8.一种动态提供兼容JS脚本...
【专利技术属性】
技术研发人员:陈汉钗,黄文浩,
申请(专利权)人:广州市动景计算机科技有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。