[发明专利]一种浏览器页面间通信的方法有效
申请号: | 201110449883.0 | 申请日: | 2011-12-28 |
公开(公告)号: | CN102567125A | 公开(公告)日: | 2012-07-11 |
发明(设计)人: | 兰雨晴;尹忠兴;张木梁;董恩广;夏颖 | 申请(专利权)人: | 中标软件有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京汇智英财专利代理事务所 11301 | 代理人: | 张俊阁 |
地址: | 200030 上海市番*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 浏览器 页面 通信 方法 | ||
技术领域
本发明涉及一种浏览器页面间通信的方法。
背景技术
浏览器页面间通信是指浏览器访问的两个Web页面中的JavaScript程序之间进行数据传递或事件提交的过程。目前浏览器访问的两个Web页面中的程序进行通信,都需要Web服务器的参与,通过Ajax技术一个页面将数据传递给Web服务器,在由Web服务器去服务器获取该数据。受限与Web服务和网络性能,通信的实时性较低,通信数据量较小;同时通信的形式受限于服务器是否提供服务。
通过Ajax技术实现页面对服务器传递的数据接收,由于服务器没有向浏览器推送数据的能力,只能页面不断的向浏览器发送请求,才能从服务器获取相关数据,这样页面就需要不断的向服务器轮训发送请求,以获取其他页面向本页面传递数据。这种轮训的机制,不仅实时性差,而且对本地系统具有一定的资源消耗。
受限于服务和网络,在需要两个页面间进行实时性较高的通信时,通过传统的Ajax技术性能是有限的。而且传统的技术必须在有网络的情况下才能够通信,在脱机状态下页面之间就无法实现通信。在数据量较大时,也很难保证数据的实时性。
发明内容
针对以上原因,本发明的主要目的在于提出一种新的浏览器不同页面间JavaScript函数实现相互通信的一种方法,通过这个方法方便的实现了一个或多个浏览器页面间的数据通信或者事件递交,进而可以方便的构建基于多浏览器页面协同工作的应用系统。
本发明的目的在于提出的浏览器不同页面间JavaScript函数相互通信的一种方法,是借助浏览器插件与操作系统进程间通信来完成,通信的发送端页面将接收端页面中的JavaScript函数名称和函数参数数据传递给其所在浏览器页面的浏览器插件;而发送端的浏览器插件再将这些数据打包成一个消息、并通过进程间通信将该消息发送给接收端的浏览器页面的浏览器插件;然后接收端的浏览器插件解析该消息,以得到指定的函数名和参数数据;并根据该函数名和参数数据由接收端插件来触发接收端浏览器页面的JavaScript函数的执行。上述方法实现了在一个浏览器页面触发另一个浏览器页面JavaScript方法的执行,即实现了事件递交;同时将数据作为事件参数进行传递,即实现了数据的传输。
本发明的一种浏览器页面间通信的方法,于该方法中:通信的发送端页面借助浏览器插件通过浏览器JavaScript引擎将数据从浏览器页面传递到通信的发送端页所在的浏览器程序进程;而通信的接收端页面借助浏览器插件通过浏览器JavaScript引擎实现接收页端面进程的获得的数据到浏览器页面JavaScript函数的调用映射;并且通信的发送端及接收端页面所在的浏览器程序进程之间是通过操作系统进程间通信进行数据传送。
其中:
发送端页面是将JavaScript函数名称和函数参数数据传递给其所在浏览器页面的该浏览器插件;并且发送端的该浏览器插件再将这些数据打包成一个消息。
该插件再通过操作系统进程间通信技术将该消息传递到接收端页面所在的浏览器程序进程中;然后接收端的浏览器插件解析该消息,以得到指定的数据;并根据该数据由接收端插件来触发接收端浏览器页面的JavaScript函数的执行。
该浏览器插件包含有发送端和接收端以及进程间通信模块,以实现各页面之间数据的相互递交;其中,浏览器插件的发送端负责从页面接收数据并将数据发送到另外一个浏览器页面的浏览器插件接收端;浏览器插件接收端负责接收发送端传来的消息并根据消息触发浏览器页面的JavaScript函数的执行。
该进程通信可为DBus、基于本地网络的Socket通信、进程间消息队列或共享内存的IPC通信。
其包含发送端步骤:
步骤(1),打开发送端页面,加载浏览器插件;
步骤(2), 发送端页面的浏览器插件与接收端页面的浏览器插件建立进程通信连接;
步骤(3),发送端页面调用浏览器插件发送端提供的JavaScript接口函数;将接收端页面定义好的JavaScript函数名称和函数参数数据作为发送端提供的JavaScript接口函数的参数进行调用;该调用将接收端的目标函数和目标函数的参数全部作为数据传递到发送端页面所在浏览器页面的浏览器插件;
步骤(4),发送端页面所在浏览器的浏览器插件接收到传来的数据后,将该数据打包成通信消息;
步骤(5),发送端页面所在浏览器页面的浏览器插件通过步骤(2)中建立的进程通信连接,将步骤(4)中的通信消息发送到接收端。
其还包含接收端步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中标软件有限公司,未经中标软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110449883.0/2.html,转载请声明来源钻瓜专利网。