[发明专利]动态提供兼容JS脚本内容的方法、装置和终端设备有效
申请号: | 201810067414.4 | 申请日: | 2018-01-24 |
公开(公告)号: | CN108388454B | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 陈汉钗;黄文浩 | 申请(专利权)人: | 阿里巴巴(中国)有限公司 |
主分类号: | G06F8/76 | 分类号: | G06F8/76;G06F8/41;G06F9/445;G06F16/957 |
代理公司: | 北京合智同创知识产权代理有限公司 11545 | 代理人: | 李杰 |
地址: | 310051 浙江省杭州市滨江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态 提供 兼容 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脚本内容的装置,其特征在于,所述装置包括:
语法分析模块,用于对获得的JS脚本代码进行语法分析,获得运行所述JS脚本代码所需的兼容列表;
列表比对模块,用于将所述兼容列表和用户请求中浏览器标识符进行比对,获得所述浏览器运行所述JS脚本代码所需的最小兼容列表;
第一代码合并模块,用于根据所述最小兼容列表转化为兼容代码,并将所述兼容代码与所述JS脚本代码进行合并响应所述用户请求。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
代码获得模块,用于根据针对访问页面的所述用户请求获得所述JS脚本代码。
10.根据权利要求9所述的装置,其特征在于,所述代码获得模块包括:
参数拼接单元,用于获得所述访问页面上的script标签,所述script标签为JS文件链接作为参数拼接成的链接;
参数解析单元,用于通过解析所述script标签对应的JS文件链接参数,获得所述JS脚本代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴(中国)有限公司,未经阿里巴巴(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810067414.4/1.html,转载请声明来源钻瓜专利网。