本发明专利技术实施例提供一种浏览器页面实时通信的方法,包括:建立和多个浏览器页面关联的多个主线程以及一个工作线程;所述多个主线程之一向所述工作线程发送消息;所述工作线程将接收到的消息分别发送给所述多个主线程的至少一个主线程;以及所述多个主线程的至少一个主线程根据所述消息执行相应的操作。通过工作线程转发从主线程接收到的消息,实现了多个主线程之间的通信,从而实现了多个浏览器页面之间的实时通信。本发明专利技术实施例同时提供对应的装置和计算机可读存储介质。
The method and device of browser page real time communication
【技术实现步骤摘要】
浏览器页面实时通信的方法及装置
本专利技术涉及计算机
,具体涉及一种浏览器页面实时通信的方法及装置。
技术介绍
目前浏览器页面的实时通信的技术方案主要包括以下三种实现方式。第一种技术方案通过在标签iframe并采用HTML5的postMessage方法实现页面之间的实时通信。在本方案中,子页面由父页面执行window.open()方法打开,且子页面必须通过iframe嵌套在主页面内部,实时通信局限在子页面和主页面之间,不能和用户主动打开的浏览器的任意新页面进行通信,从而并未真正实现多浏览器页面的实时通信。第二种方案通过在每个页面监听WebStroage数据变化实现。在本方案中,浏览器页面采用HTML5的WebStorage技术进行本地特定数据的存储,当WebStorage数据后,其他页面可通过监听onstorage事件,判断出数据的变化,以此实现不同页面的数据同步。本方案的缺点是产生冗余数据,并且WebStorage的处理逻辑和浏览器解析JavaScript、UI渲染共用主线程,如果主线程阻塞,该处理逻辑也将阻塞不执行。同理,如果WebStorage的处理逻辑出现错误或阻塞,同样也会浏览器解析JavaScript、UI渲染等步骤,进而影响页面的展示。第三种方案是通过页面进行Ajax轮询或websocket通信实现。本方案的缺点是需要服务器配合实现,由此受到网络环境的影响,并没有做到“实时”通信,而且由于需要与服务器进行数据交互,会消耗大量的服务器资源和网络带宽,进而影响页面的交互流畅度。综上,专利技术人认为,以上三种WEB端实时通信的技术方案都各有弊端,因此有必要提供一种更加高效的浏览器页面实时通信的技术方案。
技术实现思路
有鉴于此,本专利技术实施例提供一种更加高效的浏览器页面实时通信的方法及装置,通过主线程和工作线程的交互,实现了多个浏览器页面的实时通信,解决了现有的技术方案中存在的弊端。根据本专利技术实施例的第一方面,提供一种浏览器页面实时通信的方法,包括:建立和多个浏览器页面关联的多个主线程以及一个工作线程;所述多个主线程之一向所述工作线程发送消息;以及所述工作线程将接收到的消息分别发送给所述多个主线程的至少一个主线程。优选地,所述所述至少一个主线程根据所述消息执行相应的操作。优选地,所述多个主线程检测在所述多个浏览器页面显示的特定数据,当所述多个主线程之一检测到所述特定数据发生变化时,向所述工作线程发送消息。优选地,所述消息包含所述特定数据的变化数值,所述多个主线程的至少一个主线程根据所述消息执行相应的操作包括:根据所述变化数值修改所述特定数据。优选地,所述多个主线程之一检测到特定数据发生变化包括:当一个浏览器页面上展示的所述特定数据被用户修改时,相应的主线程检测到所述特定数据发生变化。优选地,所述多个浏览器页面包含购物车,所述特定数据为购物车数据。优选地,所述多个浏览器页面为同一个浏览器打开,所述建立多个主线程和一个工作线程包括:在所述浏览器打开所述多个浏览器页面时建立所述多个主线程;以及在所述浏览器打开所述多个浏览器页面的第一个浏览器页面时建立所述工作线程。优选地,还包括:在所述多个主线程和工作线程之间建立通信连接。优选地,还包括:在所述多个主线程中,设置消息事件的回调函数,所述回调函数用于接收消息并执行相应的操作。优选地,所述方法的步骤均在浏览器端执行。根据本专利技术实施例的第二方面,提供一种浏览器页面实时通信的装置,包括:主控模块,用于建立和多个浏览器页面关联的多个主线程和一个工作线程;主线程模块,用于在所述主线程中执行,向所述工作线程发送消息,从所述工作线程接收消息;工作线程模块,在所述工作线程中执行,用于从所述多个主线程之一接收消息,并向所述多个主线程的至少一个主线程发送消息。优选地,所述主线程模块还包括:根据接收到的消息执行相应的操作。优选地,所述主线程模块检测在所述多个浏览器页面显示的特定数据,当所述多个主线程之一检测到所述特定数据发生变化时,向所述工作线程发送消息。优选地,所述消息包含所述特定数据的变化数值,所述主线程模块根据所述消息执行相应的操作包括:根据所述变化数值修改所述特定数据。优选地,当一个浏览器页面上展示的所述特定数据被用户修改时,相应的主线程检测到所述特定数据发生变化。优选地,所述多个浏览器页面包含购物车,所述特定数据为购物车数据。根据本专利技术实施例的第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现上述的方法。根据本专利技术实施例的第四方面,提供一种实时通信的装置,包括:存储器,用于存储计算机指令;处理器,耦合到所述存储器,所述处理器被配置为基于所述存储器存储的计算机指令执行实现上述的方法。本专利技术的优选实施例具有以下优点或有益效果:通过建立和多个浏览器页面关联的多个主线程和一个工作线程,工作线程转发从主线程接收到的消息,实现了多个主线程之间的通信,从而实现了多个浏览器页面之间的实时通信,主线程和工作线程的处理逻辑不阻塞浏览器的正常工作,从而不会影响页面的展示。本专利技术的优选实施例具有以下优点或有益效果:检测在多个浏览器页面显示的特定数据,当一个主线程检测到特定数据发生变化时,向工作线程发送消息,工作线程将消息转发出去,其他主线程接收到消息后根据变化数值修改特定数据,从而实现多个浏览器页面的数据同步。本专利技术的优选实施例具有以下优点或有益效果:本专利技术实施例的相应步骤均可以采用前端技术在浏览器端执行,无需服务器的配合实现,从而不受网络环境影响。附图说明通过参照以下附图对本专利技术实施例的描述,本专利技术的上述以及其它目的、特征和优点将更为清楚,在附图中:图1是本专利技术实施例的浏览器页面实时通信的方法中的主线程和工作线程之间的交互图;图2是本专利技术另一实施例的浏览器页面实时通信的方法中的主线程和工作线程之间的交互图;图3a是根据本专利技术实施例的浏览器页面实时通信的方法的主线程的流程图;图3b是根据本专利技术实施例的浏览器页面实时通信的方法的工作线程的流程图;图4是根据本专利技术实施例的浏览器页面实时通信的装置的结构图;图5是根据本专利技术实施例的浏览器页面实时通信的装置的结构图。具体实施方式以下基于实施例对本专利技术进行描述,但是本专利技术并不仅仅限于这些实施例。在下文对本专利技术的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本专利技术。为了避免混淆本专利技术的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。图1是本专利技术实施例的浏览器页面实时通信的方法中的主线程和工作线程之间的交互图。如图所示,以主线程A、B以及工作线程C为例介绍本实施例本文档来自技高网...
【技术保护点】
1.一种浏览器页面实时通信的方法,其特征在于,包括:/n建立和多个浏览器页面关联的多个主线程以及一个工作线程;/n所述多个主线程之一向所述工作线程发送消息;以及/n所述工作线程将接收到的消息分别发送给所述多个主线程的至少一个主线程。/n
【技术特征摘要】
1.一种浏览器页面实时通信的方法,其特征在于,包括:
建立和多个浏览器页面关联的多个主线程以及一个工作线程;
所述多个主线程之一向所述工作线程发送消息;以及
所述工作线程将接收到的消息分别发送给所述多个主线程的至少一个主线程。
2.根据权利要求1所述的方法,其特征在于,所述所述至少一个主线程根据所述消息执行相应的操作。
3.根据权利要求2所述的方法,其特征在于,所述多个主线程检测在所述多个浏览器页面显示的特定数据,当所述多个主线程之一检测到所述特定数据发生变化时,向所述工作线程发送消息。
4.根据权利要求3所述的方法,其特征在于,所述消息包含所述特定数据的变化数值,所述多个主线程的至少一个主线程根据所述消息执行相应的操作包括:根据所述变化数值修改所述特定数据。
5.根据权利要求3所述的方法,其特征在于,所述多个主线程之一检测到特定数据发生变化包括:
当一个浏览器页面上展示的所述特定数据被用户修改时,相应的主线程检测到所述特定数据发生变化。
6.根据权利要求5所述的方法,其特征在于,所述多个浏览器页面包含购物车,所述特定数据为购物车数据。
7.根据权利要求1所述的方法,其特征在于,所述多个浏览器页面为同一个浏览器打开,所述建立多个主线程和一个工作线程包括:
在所述浏览器打开所述多个浏览器页面时建立所述多个主线程;以及
在所述浏览器打开所述多个浏览器页面的第一个浏览器页面时建立所述工作线程。
8.根据权利要求1述的方法,其特征在于,还包括:在所述多个主线程和工作线程之间建立通信连接。
9.根据权利要求8所述的方法,其特征在于,还包括:在所述多个主线程中,设置消息事件的回调函数,所述回调函数用于接收消息并执行相应的操作。
【专利技术属性】
技术研发人员:贾少腾,
申请(专利权)人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。