适用于客户端全版本浏览器的数据传输方法及系统与流程

文档序号:23392000发布日期:2020-12-22 13:58阅读:229来源:国知局
适用于客户端全版本浏览器的数据传输方法及系统与流程

本发明涉及计算机应用技术领域,尤其涉及一种适用于客户端全版本浏览器的数据传输方法及系统。



背景技术:

本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。

目前,大多数的web端应用开发都或多或少的使用了市面上的开源工具包,这类工具包可简化开发工作,例如文本编辑,上传、下载、视频、语音、界面展示等。但是,这些工具包对浏览器版本有严格的要求,比如:twitter的bootstrap要求ecmascript6,其中绝大多数的功能性编码可满足ie9及以上,vue架构里的template、promise虽然也是在ecmascript6,但只支持ie10及以上。

薪酬自助查询管理系统在设计时,同样使用了上述的工具包,薪酬自助查询管理系统升级时,由于浏览器的兼容性未随着系统版本的快速迭代而及时更新,系统的应用对其适配的浏览器版本也有着明确要求。在用户实际使用中因浏览器版本不符合要求而引发的功能失效问题层出不穷,不但限制了应用的推广还额外增加了运维成本。

目前在兼容性方面,用户通过浏览器与应用服务器间进行数据传输的方法主要存在以下缺点:

(1)应用数据的传输协议按照http协议执行,用户请求和服务器响应间的数据传输格式常以键值对形式存在,但截止目前大多数的web端系统应用所采用的技术框架多样性使得其在不同浏览器中数据传输格式存在着偏差。例如,高版本技术框架匹配低版本浏览器时,经常发生数据解析异常、应用功能失效等问题。

(2)浏览器要求数据应严格按照格式编写,但很多中间件的编码规范性并不统一,进而导致部分版本浏览器无法正常识别。

(3)常见的封装传输数据的api有json、text、xml、script、string等,其底层原理是jquery根据http包的mime信息判定。但是客户使用不同版本浏览器对应加载的jquery版本亦不相同,进而解析功能插件所生成的数据也存在差异。例如构建前端页面比较常用的框架bootstrap、功能插件easyui、uploadify等,封装数据时格式的不规范、不统一会导致低版本浏览器无法识别问题。因此项目开发代码的统一性较差,后期运维成本较高。

(4)页面越是复杂,越对浏览器版本要求严苛,像图表视窗、附件扩展、文本面板等很多项目应用都会注明或告知用户浏览器的版本要求。因此应用系统使用的局限性严重影响了后期的推广上线。

综上所述,现有的技术并不能满足对于全版浏览器的适配需求。



技术实现要素:

有鉴于此,本发明提出了一种适用于客户端全版本浏览器的数据传输方法及系统,能够最大限度的提高应用的适配性,完全适用于全版本浏览器,满足业务场景需求。

为了实现上述目的,在一些实施方式中,采用如下技术方案:

一种适用于客户端全版本浏览器的数据传输方法,包括:

将不同功能插件对应不同版本浏览器时所产生问题的解决方案进行集中封装;

接收客户端请求数据,所述请求数据经控制层优先识别用户所使用的浏览器版本;

根据浏览器版本,调用所述集中封装的程序,重写所述浏览器中不可识别的功能编码部分,再发送至服务器。

作为进一步地方案,根据用户所使用的浏览器版本和服务器的响应数据,判断响应数据能否在所述浏览器上正常展示;

对于无法正常展示的数据,调用所述集中封装的程序,重新编译成满足用户浏览器版本要求的编码格式。

作为进一步地方案,编译成满足用户浏览器版本要求的编码格式之后,还包括:

对响应数据按照设定协议进行封装,将封装好的数据按照其自身的数据类型映射至不同的处理机制。

作为进一步地方案,客户端发起数据请求后,将客户端所使用的浏览器版本自动纳入请求数据中,并根据浏览器版本对不兼容的部分进行兼容代码的补全,重新生成兼容的功能代码。

作为进一步地方案,所述不同功能插件包括:不同的工具包、架构或者原生编码。

作为进一步地方案,所述不同版本浏览器至少包括:ie8及以上版本、edge、chrome、firefox及opera版本的浏览器。

作为进一步地方案,客户端以泛型处理方式将响应数据统一接收,再根据数据类型做不同的处理。

在另一些实施方式中,采用如下技术方案:

一种适用于客户端全版本浏览器的数据传输系统,包括:

用于将不同功能插件对应不同版本浏览器时所产生问题的解决方案进行集中封装的装置;

用于接收客户端请求数据,所述请求数据经控制层优先识别用户所使用的浏览器版本的装置;

用于根据浏览器版本,调用所述集中封装的程序,重写所述浏览器中不可识别的功能编码部分,再发送至服务器的装置。

在另一些实施方式中,采用如下技术方案:

一种终端设备,其包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,其特征在于,所述指令适于由处理器加载并执行上述的适用于客户端全版本浏览器的数据传输方法。

在另一些实施方式中,采用如下技术方案:

一种计算机可读存储介质,其中存储有多条指令,其特征在于,所述指令适于由终端设备的处理器加载并执行上述的适用于客户端全版本浏览器的数据传输方法。

与现有技术相比,本发明的有益效果是:

本发明解决了技术框架和全版浏览器匹配失效的问题,这样既保证了数据的有效性、安全性,又保证了客户端与服务器的数据联通和应用系统的正常使用。

本发明的附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1为本发明实施例中适用于客户端全版本浏览器的数据传输方法流程图。

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本发明使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

实施例一

在一个或多个实施方式中,公开了一种适用于客户端全版本浏览器的数据传输方法,参照图,包括以下过程:

将不同功能插件对应不同版本浏览器时所产生问题的解决方案进行集中封装;不同功能插件可以为:不同的工具包、架构或者原生编码等。

接收客户端请求数据,所述请求数据经控制层优先识别用户所使用的浏览器版本;

根据浏览器版本,调用所述集中封装的程序,重写所述浏览器中不可识别的功能编码部分,再发送至服务器。

本实施例中,全版本浏览器至少涵盖ie8及以上、edge、chrome、firefox、opera等主流浏览器。

具体地,根据业务场景,将用户请求数据并按照http协议进行封装;请求数据经控制层由javascript语言优先识别用户所使用的浏览器版本,根据浏览器版本,调用集中封装中相应的解决方案,重写用户浏览器中不可识别的功能编码部分,再发送至服务器。比如:在ie9及以下的浏览器环境,将axios的异步操作promise未定义问题进行补全,重写回调方法,确保编译通过。

这样可以保障用户的浏览器版本在不满足工具包或者框架要求下同样可以使用。

服务器处理客户端的数据请求,根据用户所使用的浏览器版本和响应数据,判断其是否存在数据展示效果问题,即各类工具包、插件、框架在接收数据后是否能在该版本浏览器上正常展示;对于无法正常展示的数据,调用上述集中封装的程序,重新编译成满足用户浏览器版本要求的编码格式,由此解决浏览器的兼容性问题。比如:html5中很多属性在ie9及以下不兼容,角度旋转、表单默认填充文字等均由该技术自动补全,保障用户低版本浏览器的数据正常显示。

对处理后的响应数据按照http协议进行封装,将封装好的数据按照其自身的数据类型映射至不同的处理机制。

根据业务需求调用相应接口并实现业务需求;比如:实现数据库中的增、删、改、查,图表展示或工作流等等。

本实施例中,针对现行的开源插件对浏览器内核版本有不同要求的问题,将常用的功能插件easyui、uploadify、ztree、ckeditor、webgl等,以及原生函数float64array、float32array等对应不同版本浏览器时所产生的问题进行了集中封装,并在业务层直接注入使用,完全解决了浏览器版本问题导致的功能失效问题。

利用浏览器ui线程,当用户触发事件后,ui线程回调集中封装的函数,将用户请求数据按照相应版本浏览器可以识别的数据格式输出,服务器响应数据后再次回调集中封装的函数,再次根据用户浏览器的版本将响应数据编码成可兼容格式,以此适配不同浏览器版本。

引入javascript库匹配css、html语言,实现业务数据向可视化场景界面的转化,添加了各种内核版本的浏览器实现css样式的差异化编码,补足了不同内核浏览器在动态加载css样式上编码方式不统一的短板。

客户端发起数据请求后,将客户端所使用的浏览器版本自动纳入请求数据中,并根据浏览器版本对不兼容的部分进行兼容代码的补全,重新生成兼容的功能代码。比如:用户使用ie9浏览器实现dom旋转效果时,由该技术自动补全其对应版本的兼容代码。axios异步处理时由该技术自动补全至向下版本兼容的异步处理方式。

采用泛型编码的处理方式,即根据结构化数据或非结构化数据对应的类型做响应的处理。比如:浏览器对数据类型区分为对象、字符串、数字等,为避免不同类型的处理方式发生混淆,即以泛型处理方式将数据统一接收,再根据类型的不同做不同的处理。按照不同数据类型映射相应的数据格式,避免浏览器和外部插件版本不匹配导致的数据格式异常、功能失效问题,加强数据类型的安全性减少类转换次数,提高应用系统执行效率。

本实施例中,将源码中的变量、函数等改写为无意义简短名字,大大缩小了源码量、提高网络传输速度和客户端加载速度,保证安全性和高效性,防止网络攻击。

实施例二

在一个或多个实施方式中,公开了一种适用于客户端全版本浏览器的数据传输系统,包括:

用于将不同功能插件对应不同版本浏览器时所产生问题的解决方案进行集中封装的装置;

用于接收客户端请求数据,所述请求数据经控制层优先识别用户所使用的浏览器版本的装置;

用于根据浏览器版本,调用所述集中封装的程序,重写所述浏览器中不可识别的功能编码部分,再发送至服务器的装置。

需要说明的是,上述装置的具体实现方式采用实施例一中公开的方法实现,具体不再赘述。

实施例三

在一个或多个实施方式中,公开了一种终端设备,包括服务器,所述服务器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例一中的适用于客户端全版本浏览器的数据传输方法。为了简洁,在此不再赘述。

应理解,本实施例中,处理器可以是中央处理单元cpu,处理器还可以是其他通用处理器、数字信号处理器dsp、专用集成电路asic,现成可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。

在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。

实施例一中的适用于客户端全版本浏览器的数据传输方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

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

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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