基于Web Worker实现消息通信的方法以及装置制造方法及图纸

技术编号:18083631 阅读:30 留言:0更新日期:2018-05-31 12:13
本申请公开一种基于Web Worker实现消息通信的方法,包括:接收调用方发送的调用指令;确定预先初始化的Web Worker中用于处理所述调用指令对应数据处理类型的Web Worker;基于所述调用指令生成其对应的携带标识信息的数据请求,并向所述确定的Web Worker发送所述携带标识信息的数据请求;接收所述确定的Web Worker发送的携带标识信息的数据响应;根据所述数据响应携带的标识信息确定其对应的调用方,并向所述确定的调用方发送所述数据响应中包含的数据处理结果。所述基于Web Worker实现消息通信的方法,在JavaScript主线程和Web Worker之间建立了消息通信的映射机制,为使用者维护二者之间的消息通信提供了方便,同时降低了技术实现的复杂度。

【技术实现步骤摘要】
基于WebWorker实现消息通信的方法以及装置
本申请涉及JavaScript
,具体涉及一种基于WebWorker实现消息通信的方法。本申请同时涉及一种基于WebWorker实现消息通信的装置,另一种基于WebWorker实现消息通信的方法以及装置,以及两种电子设备。
技术介绍
JavaScript是一种在Web应用开发中广泛使用的直译式脚本语言,可以实现在HTML页面嵌入动态文本、对浏览器事件做出响应、对即将提交到服务器的数据进行验证以及对访客信息进行检测等功能。众所周知,传统页面中(HTML5之前)的JavaScript的运行都是以单线程的方式工作的,虽然有多种方式实现了对多线程的模拟(例如,JavaScript中的setinterval方法、setTimeout方法),但是其在本质上仍然是由JavaScript以单线程调度的方式进行的。为了解决JavaScript运行的单线程问题,WebWorker作为HTML5标准的一部分应运而生,WebWorker的本质是可以在同一时间建立多个JavaScript线程,其基本原理就是在当前JavaScript主线程中使用Worker类加载一个JavaScript文件创建一个新的线程,起到互不阻塞执行的效果,并且提供主线程和新线程之间数据交换的接口。随着HTML5标准的确立和普及,WebWorker的使用也越来越广,越来越多的浏览器开始支持WebWorker。但由于WebWorker采用的是比较基础的消息通讯机制,这就给使用者的编码工作增加了难度。目前JavaScript线程与WebWorker之间的通讯采用消息机制,JavaScript的线程可以向任意一个WebWorker发送消息,各WebWorker也可以向JavaScript线程发送相应消息。如附图1所示,其中包括JavaScript主线程和三个WebWorker:WebWorker1、WebWorker2和WebWorker3,JavaScript主线程可以向WebWorker1、WebWorker2和WebWorker3中的任意一个发送消息,还可以接收WebWorker1、WebWorker2和WebWorker3中的任意一个发送的消息。但是现有技术JavaScript主线程与WebWorker在进行消息通信时,二者相互之间传递的消息没有映射关系,比如通过JavaScript主线程向某个WebWorker发送消息,之后JavaScript线程会等待WebWorker反馈的消息响应,但由于二者相互之间传递的消息没有映射关系,加之二者之间发送和接收的消息较多且是任意而无序的,很难确定JavaScript线程向WebWorker发送的消息对应的WebWorker反馈的消息响应,因此需要使用者在使用时找到JavaScript线程与WebWorker相互之间传递的消息的映射关系,技术实现较为复杂。
技术实现思路
本申请提供一种基于WebWorker实现消息通信的方法,以解决现有技术存在的技术实现复杂的问题。本申请同时涉及一种基于WebWorker实现消息通信的装置,另一种基于WebWorker实现消息通信的方法以及装置,以及两种电子设备。本申请提供一种基于WebWorker实现消息通信的方法,包括:接收调用方发送的调用指令;确定预先初始化的WebWorker中用于处理所述调用指令对应数据处理类型的WebWorker;基于所述调用指令生成其对应的携带标识信息的数据请求,并向所述确定的WebWorker发送所述携带标识信息的数据请求;接收所述确定的WebWorker发送的携带标识信息的数据响应;根据所述数据响应携带的标识信息确定其对应的调用方,并向所述确定的调用方发送所述数据响应中包含的数据处理结果。可选的,所述基于所述调用指令生成其对应的携带标识信息的数据请求,并向所述确定的WebWorker发送所述携带标识信息的数据请求步骤执行后,且所述根据所述数据响应携带的标识信息确定其对应的调用方,并向所述确定的调用方发送所述数据响应中包含的数据处理结果步骤执行前,执行下述步骤:将所述调用方与所述标识信息的对应关系记录到预先设置的标识信息与调用方映射关系中。可选的,所述根据所述数据响应携带的标识信息确定其对应的调用方,并向所述确定的调用方发送所述数据响应中包含的数据处理结果步骤执行之后,执行下述步骤:在所述标识信息与调用方映射关系中删除所述调用方与所述标识信息的对应关系。可选的,所述接收调用方发送的调用指令步骤执行前,执行下述步骤:存储所述预先初始化的WebWorker的配置信息;其中,所述配置信息包括:预先初始化的WebWorker的数据处理类型。可选的,所述确定预先初始化的WebWorker中用于处理所述调用指令对应数据处理类型的WebWorker,采用如下方式实现:根据所述调用指令中包含的数据处理类型,以及预先存储的所述WebWorker的数据处理类型,从预先存储的所述WebWorker当中选择数据处理类型与所述调用指令中包含的数据处理类型相同的一个或者多个WebWorker,作为用于处理所述调用指令对应数据处理类型的WebWorker。可选的,所述并向所述确定的WebWorker发送所述携带标识信息的数据请求,采用如下方式实现:分别向确定的每一个WebWorker发送所述携带有标识信息的数据请求。可选的,所述接收所述确定的WebWorker发送的携带标识信息的数据响应,采用如下方式实现:分别接收所述确定的每一个WebWorker发送的所述携带有标识信息的数据响应。可选的,所述调用指令当中包含所述调用方发送的待处理数据;相应的,所述基于所述调用指令生成其对应的携带标识信息的数据请求,采用如下方式实现:获取所述调用指令中包含的待处理数据,以及接收到所述调用指令时的标识信息,并基于所述待处理数据和所述标识信息生成所述调用指令对应的携带标识信息的数据请求。可选的,所述标识信息包括:依据时间戳生成的标识或者时间戳。本申请还提供一种基于WebWorker实现消息通信的装置,包括:调用指令接收单元,用于接收调用方发送的调用指令;WebWorker确定单元,用于确定预先初始化的WebWorker中用于处理所述调用指令对应数据处理类型的WebWorker;数据请求发送单元,用于基于所述调用指令生成其对应的携带标识信息的数据请求,并向所述确定的WebWorker发送所述携带标识信息的数据请求;数据响应接收单元,用于接收所述确定的WebWorker发送的携带标识信息的数据响应;数据处理结果发送单元,用于根据所述数据响应携带的标识信息确定其对应的调用方,并向所述确定的调用方发送所述数据响应中包含的数据处理结果。本申请另外提供一种基于WebWorker实现消息通信的方法,包括:接收JavaScript主线程发送的携带有标识信息的数据请求;根据所述数据请求中包含的待处理数据进行数据处理,获得数据处理结果;利用所述数据处理结果和所述数据请求携带的标识信息生成所述数据请求对应的携带标识信息的数据响应;向所述JavaScript主线程发送所述携带有标识信息的数据响应。可选的,所述接收JavaScript主线程发送的携带有标识信本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201611036464.html" title="基于Web Worker实现消息通信的方法以及装置原文来自X技术">基于Web Worker实现消息通信的方法以及装置</a>

【技术保护点】
一种基于Web Worker实现消息通信的方法,其特征在于,包括:接收调用方发送的调用指令;确定预先初始化的Web Worker中用于处理所述调用指令对应数据处理类型的Web Worker;基于所述调用指令生成其对应的携带标识信息的数据请求,并向所述确定的Web Worker发送所述携带标识信息的数据请求;接收所述确定的Web Worker发送的携带标识信息的数据响应;根据所述数据响应携带的标识信息确定其对应的调用方,并向所述确定的调用方发送所述数据响应中包含的数据处理结果。

【技术特征摘要】
1.一种基于WebWorker实现消息通信的方法,其特征在于,包括:接收调用方发送的调用指令;确定预先初始化的WebWorker中用于处理所述调用指令对应数据处理类型的WebWorker;基于所述调用指令生成其对应的携带标识信息的数据请求,并向所述确定的WebWorker发送所述携带标识信息的数据请求;接收所述确定的WebWorker发送的携带标识信息的数据响应;根据所述数据响应携带的标识信息确定其对应的调用方,并向所述确定的调用方发送所述数据响应中包含的数据处理结果。2.根据权利要求1所述的基于WebWorker实现消息通信的方法,其特征在于,所述基于所述调用指令生成其对应的携带标识信息的数据请求,并向所述确定的WebWorker发送所述携带标识信息的数据请求步骤执行后,且所述根据所述数据响应携带的标识信息确定其对应的调用方,并向所述确定的调用方发送所述数据响应中包含的数据处理结果步骤执行前,执行下述步骤:将所述调用方与所述标识信息的对应关系记录到预先设置的标识信息与调用方映射关系中。3.根据权利要求2所述的基于WebWorker实现消息通信的方法,其特征在于,所述根据所述数据响应携带的标识信息确定其对应的调用方,并向所述确定的调用方发送所述数据响应中包含的数据处理结果步骤执行之后,执行下述步骤:在所述标识信息与调用方映射关系中删除所述调用方与所述标识信息的对应关系。4.根据权利要求1所述的基于WebWorker实现消息通信的方法,其特征在于,所述接收调用方发送的调用指令步骤执行前,执行下述步骤:存储所述预先初始化的WebWorker的配置信息;其中,所述配置信息包括:预先初始化的WebWorker的数据处理类型。5.根据权利要求4所述的基于WebWorker实现消息通信的方法,其特征在于,所述确定预先初始化的WebWorker中用于处理所述调用指令对应数据处理类型的WebWorker,采用如下方式实现:根据所述调用指令中包含的数据处理类型,以及预先存储的所述WebWorker的数据处理类型,从预先存储的所述WebWorker当中选择数据处理类型与所述调用指令中包含的数据处理类型相同的一个或者多个WebWorker,作为用于处理所述调用指令对应数据处理类型的WebWorker。6.根据权利要求5所述的基于WebWorker实现消息通信的方法,其特征在于,所述并向所述确定的WebWorker发送所述携带标识信息的数据请求,采用如下方式实现:分别向确定的每一个WebWorker发送所述携带有标识信息的数据请求。7.根据权利要求6所述的基于WebWorker实现消息通信的方法,其特征在于,所述接收所述确定的WebWorker发送的携带标识信息的数据响应,采用如下方式实现:分别接收所述确定的每一个WebWorker发送的所述携带有标识信息的数据响应。8.根据权利要求1所述的基于WebWorker实现消息通信的方法,其特征在于,所述调用指令当中包含所述调用方发送的待处理数据;相应的,所述基于所述调用指令生成其对应的携带标识信息的数据请求,采用如下方式实现:获取所述调用指令中包含的待处理数据,以及接收到所述调用指令时的标识信息,并基于所述待处理数据和所述标识信息生成所述调用指令对应的携带标识信息的数据请求。9.根据权利要求8所述的基于WebWorker实现消息通信的方法,其特征在于,所述标识信息包括:依据时间戳生成的标识或者时间戳。10.一种基于WebWorker实现消息通信的装置,其特征在于,包括:调用指令接收单元,用于接收调用方发送的调用指令;WebWorker确定单元,用于确定预先初始化的WebWorker中用于处理所述调用指令对应数据处理类型的WebWorker;数...

【专利技术属性】
技术研发人员:朱佳墩
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1