CN104598322A - 多窗口组件间通信的方法及装置 - Google Patents

多窗口组件间通信的方法及装置 Download PDF

Info

Publication number
CN104598322A
CN104598322A CN201410853210.5A CN201410853210A CN104598322A CN 104598322 A CN104598322 A CN 104598322A CN 201410853210 A CN201410853210 A CN 201410853210A CN 104598322 A CN104598322 A CN 104598322A
Authority
CN
China
Prior art keywords
window
message event
assembly
operational order
triggered target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410853210.5A
Other languages
English (en)
Inventor
蒋梦飏
黄鑫
张卓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qianxin Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201410853210.5A priority Critical patent/CN104598322A/zh
Publication of CN104598322A publication Critical patent/CN104598322A/zh
Pending legal-status Critical Current

Links

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了一种多窗口组件间通信的方法及装置,该方法包括:在接收到第一窗口的第一消息事件时,根据所述第一消息事件,获取所述第一消息事件对应的触发对象,以及所述触发对象的操作指令,所述触发对象为一个以上第二窗口的至少一个组件;向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作。该方法通过在接收到第一窗口的第一消息事件,获取该第一消息事件对应的触发对象,以及该触发对象的操作指令,并向该触发对象发布操作指令,使该触发对象对应的第二窗口的组件执行该操作指令对应的操作,该方法实现了多窗口组件之间信息的有效传递,提升了用户的体验。

Description

多窗口组件间通信的方法及装置
技术领域
本发明涉及互联网技术领域,具体涉及一种多窗口组件间通信的方法及装置。
背景技术
在数据可视化工程中,为了获取更大的显示区域通常采用多屏的设计方案。在基于Web的多屏应用程序中,通过扩展一个浏览器窗口使其覆盖所有屏幕,然后在该窗口内的不同屏幕区域中显示不同内容。然而随着浏览器窗口显示面积的不断扩大、窗口内元素的增多以及交互复杂程度的提高,单线程的JavaScript应用程序将在性能上面临非常大的挑战。在数据可视化工程中,由于要进行频繁的数据运算以及大量的图形绘制,JavaScript的执行与UI渲染的相互阻塞问题会时有发生。而在大数据量的情况下,例如使用力学布局计算数百个点的位置并实时渲染等问题会更加突出,通常会导致浏览器发生卡顿或长时间失去反应、页面加载不出来或者用户操作不能及时的回应等问题,影响了可视化效果以及用户体验。
超文本标志语言第五版(Hyper Text Markup Language,简称HTML5)提出了基于Web Work的JavaScript多线程解决方案,但是Web Work所创建的并不是一个完整的线程,只适合进行数据运算,而不能进行UI渲染和更新,仍然不能解决单纯由UI渲染而造成浏览器卡顿的问题。
通过创建多个完整独立的线程进行分工合作,为每一个窗口开启一个独立的线程,每个线程负责整个应用程序的一部分工作,实现了前端性能负载的相对均衡和UI渲染的阻塞问题,但是由于各个窗口的 JavaScript的执行环境之间是相互独立的,彼此之间无法进行通信,导致各独立线程之间消息事件不能够有效传递,无法实现多线程间的协同工作。
发明内容
针对现有技术中的缺陷,本发明提供了一种多窗口组件间通信的方法及装置,实现了多窗口环境下多组件间的信息传递,进而实现了基于多窗口的多线程JavaScript协同工作,并最终解决了由于单线程JavaScript执行与UI渲染互相阻塞而造成的前端性能问题。
第一方面,本发明提供一种多窗口组件间通信的装置,包括:
获取模块,用于在接收到第一窗口的第一消息事件时,根据所述第一消息事件,获取所述第一消息事件对应的触发对象,以及所述触发对象的操作指令,所述触发对象为一个以上第二窗口的至少一个组件;
发布模块,用于向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作。
可选的,所述装置还包括:
第一接收模块,用于在第一窗口发布第一消息事件时,接收所述第一窗口的第一消息事件。
可选的,所述装置还包括:
第二接收模块,用于接收一个以上第二窗口的组件订阅的第二消息事件;
所述发布模块,具体用于:
在所述触发对象与所述第二消息事件对应的所述一个以上第二窗口的组件一致时,向所述一个以上第二窗口的组件发布所述操作指令。
可选的,所述装置还包括:
窗口标识符添加模块,用于为所述第一窗口和一个以上第二窗口添加窗口标识符,所述一个以上第二窗口通过所述窗口标识符订阅所述第二消息事件,
和/或,
所述获取模块,具体用于:
在接收到第一窗口的第一消息事件时,获取所述第一窗口对应的触发对象的窗口标识符;
所述发布模块,具体用于:
根据所述窗口标识符向与所述窗口标识符对应的触发对象发布所述操作指令。
可选的,所述装置还包括:
存储模块,用于存储所述第一消息事件,
所述存储模块,具体用于:
在所述发布模块发布所述操作指令之后,在所述第一窗口或一个以上的第二窗口关闭时,将所述第一窗口或一个以上的第二窗口的组件的状态进行保存,以使所述第一窗口或一个以上的第二窗口的组件被打开时,显示所述第一窗口或一个以上的第二窗口的组件保存的最终状态。
可选的,所述第一消息事件或所述第二消息事件包括下述的至少一种:
配置窗口属性的事件、触控事件、命令事件。
第二方面,本发明还提供了一种多窗口组件间通信的方法,包括:
在接收到第一窗口的第一消息事件时,根据所述第一消息事件,获取所述第一消息事件对应的触发对象,以及所述触发对象的操作指令,所述触发对象为一个以上第二窗口的至少一个组件;
向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作。
可选的,所述方法还包括:
在第一窗口发布第一消息事件时,接收所述第一窗口的第一消息事件。
可选的,所述方法还包括:
接收一个以上第二窗口的组件订阅的第二消息事件;
相应地,向所述触发对象发布所述操作指令,包括:
在所述触发对象与所述第二消息事件对应的所述一个以上第二窗口的组件一致时,向所述一个以上第二窗口的组件发布所述操作指令。
可选的,所述方法还包括:
为所述第一窗口和一个以上第二窗口添加窗口标识符,所述一个以上第二窗口通过所述窗口标识符订阅所述第二消息事件,
和/或,
在接收到第一窗口的第一消息事件时,获取所述第一窗口对应的触发对象的窗口标识符,
相应地,向所述触发对象发布所述操作指令,包括:
根据所述窗口标识符向与所述窗口标识符对应的触发对象发布所述操作指令。
可选的,所述方法还包括:
存储所述第一消息事件,
相应的,在向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作之后,所述方法还包括:
当所述第一窗口或一个以上的第二窗口关闭时,将所述第一窗口或一个以上的第二窗口的组件的状态进行保存,以使所述第一窗口或一个以上的第二窗口的组件被打开时,显示所述第一窗口或一个以上的第二窗口的组件保存的最终状态。
可选的,所述第一消息事件或所述第二消息事件包括下述的至少 一种:
配置窗口属性的事件、触控事件、命令事件。
由上述技术方案可知,本发明提供的一种多窗口组件间通信的方法及装置,该方法通过在接收到第一窗口的第一消息事件,获取该第一消息事件对应的触发对象,以及该触发对象的操作指令,并向该触发对象发布操作指令,使该触发对象对应的第二窗口的组件执行该操作指令对应的操作,该方法实现了多窗口组件之间信息的有效传递,提升了用户的体验。
附图说明
图1为本发明一实施例提供的多窗口组件间通信的方法的流程示意图;
图2为本发明另一实施例提供的多窗口组件间通信的方法的流程示意图;
图3A为本发明一实施例提供的窗口的组件订阅消息事件的示意图;
图3B为本发明一实施例提供的窗口的组件发布消息事件的示意图;
图4A至图4D为本发明一实施例提供的基于触控事件实现各个窗口组件之间的通信的示意图;
图5为本发明一实施例提供的多窗口组件间通信的装置的结构示意图。
具体实施方式
下面结合附图,对发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
为了解决在同一个浏览器窗口显示多个组件,JavaScript的执行与UI渲染相互阻塞的问题,本发明采用创建多个完整而又独立的UI线程进行分工合作,其中每个线程负责整个应用程序的一部分工作,从此解决了在同一个浏览器窗口显示多个组件,JavaScript的执行与UI渲染相互阻塞的问题。
基于上述思想本申请采用了在浏览器中为每一个窗口开启一个独立的UI线程,此外,每一个窗口又有一个独立的JavaScript执行环境,该环境下的JavaScript拥有完整的页面操作能力。因此,通过开启多个窗口,并且在这些窗口中运行同一个应用程序实现了多线程处理。但是上述方法还需要一套完成的通信机制来保证数据在多个窗口内的组件间有效传递。本发明实施例以在浏览器本地进行多窗口的组件间的通信为例进行详细说明。
图1示出了本发明实施例提供的多窗口组件间通信的方法的流程示意图,如图1所示,该多窗口组件间通信的方法包括如下步骤:
101、在接收到第一窗口的第一消息事件时,根据所述第一消息事件,获取所述第一消息事件对应的触发对象,以及所述触发对象的操作指令,所述触发对象为一个以上第二窗口的至少一个组件。
举例来说,本发明实施例提供的多窗口组件间的通信应用的客户端为现有的触摸型电子设备,当然也可以为其他非触摸型电子设备,本发明对此不作限制。
可理解的是,上述第一窗口可以理解为发布消息事件的窗口,一个以上第二窗口为订阅该消息事件的窗口。
在上述第一消息事件中可以获知该消息事件对应的触发对象和该触发对象的操作指令,其中,触发对象可以理解为订阅该消息事件的窗口的组件,订阅该消息事件的窗口可以为一个或多个,每个窗口的组件且至少为一个。
所述触发对象的操作指令可以理解为配置窗口属性、触控、命令 等操作,例如,配置窗口的属性可以包括配置窗口尺寸的大小、位置及更新频率等,触控操作可以包括滑动执行下一步的操作、锁屏、解锁、暂停、播放等操作,命令可以包括通过语音等方式,使得窗口识别该语音,以执行相应的操作。
102、向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作。
举例来说,若上述一个以上的第二窗口均订阅了上述消息事件,则步骤102中的触发对象为所有窗口,并通过获得的该消息事件的操作指令,向所有窗口发布,使得所有窗口均按照该操作指令执行对应的操作。
例如各个窗口根据消息事件的操作指令执行配置窗口属性、触控、命令等操作。
图2示出了本发明实施例提供的多窗口组件间通信的方法的流程示意图,如图2所示,该多窗口组件间通信的方法包括如下步骤:
201、接收一个以上第二窗口的组件订阅的第二消息事件;
上述第二窗口的组件可以理解为所有窗口的组件也可以为一个或一个以上窗口的组件。
在具体应用中,上述窗口的组件的通信媒介可以为服务器也可以为浏览器本地存储订阅和发布消息事件,还可以是其他方式存储订阅和发布的消息事件,但是由于在服务器端多窗口的组件间的通信依赖于网络,且通信速度上也不如在浏览器本地进行通信,因此,本发明实施例以在浏览器本地进行多窗口的组件间的通信为例进行详细说明,但是本发明实施例采取的是一个优选的方式,并不限定本发明多窗口组件间的通信媒介。
以通信媒介在浏览器本地为例,上述第二窗口的组件向浏览器本地订阅第二消息事件,该消息事件包括配置窗口属性的事件、触控事件、命令事件。例如,该消息事件为配置窗口属性的事件时,可以理 解为在其他有任一窗口有配置窗口属性的操作时,则该订阅该消息事件的窗口也会进行实时的配置窗口属性的操作;该消息事件为触控事件例如锁屏事件时,则可以理解为在其他有任一窗口有触控事件时,则订阅该消息事件的窗口也会实时的进行锁屏的操作等。
在另一个可实现的方式中,第二窗口的组件在订阅第二消息事件之前,所有窗口都会添加窗口标识符,并通过所述窗口标识符订阅所述第二消息事件。
如图3A所示的第二窗口的组件订阅的第二消息事件的示意图,该C1和C2为窗口1的组件,S1和S2为窗口2的组件,T1为窗口3的组件,假如窗口1中的组件C1为发布消息事件的组件,C2、S1、S2、T1分别为订阅消息事件的组件,由于C1和C2为同一窗口内的组件,C2可以直接向C1订阅消息事件,对于S1和S2为窗口2的组件,T1为窗口3的组件,S1、S2、T1不能直接向C1订阅消息事件,则S1、S2、T1需要向各自窗口的代理发布者直接订阅消息事件。上述C1、C2、S1、S2、T1组件可以理解为实现某一个功能而定义的,例如导航菜单、搜索栏、新闻列表等,本发明实施例不对上述组件进行限定。
202、在第一窗口发布第一消息事件时,接收所述第一窗口的第一消息事件。
可理解的是,在第一窗口发布第一消息事件之前,也会在该窗口添加窗口标识符,在发布第一消息事件时,携带有该窗口标示符。
具体的,上述窗口的组件的通信媒介实时的接收第一窗口的第一消息事件,该第一消息事件可以理解为某窗口触发某种操作的消息事件。
203、在接收到第一窗口的第一消息事件时,根据所述第一消息事件,获取所述第一消息事件对应的触发对象,以及所述触发对象的操作指令,所述触发对象为一个以上第二窗口的至少一个组件。
举例来说,假如上述窗口的组件的通信媒介接收的第一消息事件 时,获取该第一消息事件的对应的触发对象即窗口标示符和该触发对象对应的操作指令。
上述触发对象为订阅该消息事件其他窗口的组件,上述操作指令为触发订阅该消息事件其他窗口的组件执行相应的操作。
可理解的是,上述触发对象可以为同一浏览器同一客户端的多个窗口之间的组件通信,例如第一个窗口执行了锁屏的操作,则其他订阅该消息事件的窗口也会相应的执行该锁屏操作。
上述多个窗口的组件间的通信不限于是在同一窗口内的组件还是不同窗口内的组件间的通信。需要说明的是,若是位于同一窗口内的组件间的通信,则不需要通信媒介的传输,直接该窗口内的组件间进行消息事件的订阅和发布完成同一窗口内不同组件间的通信;若是不同窗口内的组件间的通信,由于浏览器内的各个窗口的JavaScript执行环境之间是相互独立的,不能直接进行通信,因此需要通过上述通信媒介进行通信,实现不同窗口组件间的数据传递。
需要说明的是,为了实现多线程即多窗口之间的协作,需要为每个窗口添加窗口标示符,该窗口标示符可以在程序中通过设置一个字段作为其ID,为了防止该ID被误改写导致依赖于该窗口间的通信机制就会瘫痪,无法进行正常的通信,故在设置该ID时将其属性设置为只读。
204、向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作。
具体的,在向所述触发对象发布所述操作指令之前,在所述触发对象与所述第二消息事件对应的所述一个以上第二窗口的组件一致时,向所述一个以上第二窗口的组件发布所述操作指令。
可理解的是,通信媒介在接收到第一窗口的第一消息事件时,获取所述第一窗口对应的触发对象的窗口标识符,根据所述窗口标识符向与所述窗口标识符对应的触发对象发布所述操作指令。
上述通信媒介中存储有一个以上的第二窗口订阅的第二消息事件,在上述第一消息事件的操作指令和订阅的第二消息事件一致时,或当上述第一消息事件对应的触发对象与订阅的第二消息事件的窗口标示符一致时,则向订阅第二消息事件的窗口的组件发布所述操作指令。
本实施例不限定上述步骤的顺序,只是一个最佳的实施方式,比如上述步骤202中接收第一窗口的第一消息事件之后,存储该第一窗口的第一消息事件,然后再执行上述步骤210接收一个以上第二窗口的组件订阅的第二消息事件,当该一个以上第二窗口的组件订阅的第二消息事件与存储的第一窗口发布的第一消息事件对应时,则向一个以上的第二窗口的组件发布该第一消息事件,以使第二窗口的组件执行与第一消息事件中的操作指令相应的操作。
如图3B所示的第一窗口的组件发布第一消息事件的示意图,当窗口1的组件C1发布消息事件时,不能对窗口1之外的其他窗口的组件进行直接发送,故需要上述通信媒介接收窗口1的组件C1发布的消息事件。该通信媒介即浏览器本地会存储该第一消息事件,而上述步骤201中的代理发布者会实时的捕获存储在通信媒介中的消息事件,当代理发布者检测到该通信媒介中的消息事件为该代理发布者所对应的窗口中的组件订阅的消息事件时,则直接获取存储在通信媒介中的消息事件,并将该消息事件发布给对应的组件。
图4A至图4D示出了基于触控事件实现各个窗口组件之间的通信的示意图。
图4A为多窗口页面锁定前的示意图,假设窗口2和窗口3向每个窗口对应的代理发布者订阅了触控事件,用户在窗口1向下滑动,根据设置,规定该向下滑动的操作指令为锁定页面或取消锁定页面,且该操作状态的触控对象为所有窗口的所有组件,由于所有窗口原先均处于未锁定的状态,所以根据该用户在窗口1向下滑动的操作,通信 媒介会接收窗口1发布的触控事件,而此时,代理发布者检测到该触控事件之后,获取在通信媒介存储的窗口1发布的触控事件,以使该窗口2和窗口3在窗口1发布该触控事件之后,也会实时的执行相应的操作,图4B为多窗口页面锁定后的示意图,即所有的窗口的页面均处于锁定状态。
类似的,如图4C所示,为多窗口页面取消锁定前的示意图,用户通过在窗口1执行向下滑动的操作,通信媒介会接收窗口1发布的触控事件,而此时,代理发布者检测到该触控事件之后,获取在通信媒介存储的窗口1发布的触控事件,以使该窗口2和窗口3在窗口1发布该触控事件之后,也会实时的执行相应的操作,由于原来所有窗口均处于锁定状态,故根据窗口1发布的触控事件之后,所有窗口均执行了取消锁定的操作,图4D为多窗口页面取消锁定后的示意图,即所有的窗口的页面均处于未锁定状态。
在具体应用中,上述方法还包括图2中未示出的步骤205。
本发明实施例不限于上述多窗口组件之间的通信方式,在另一个可能实现的方式中,上述位于同一浏览器同一窗口之间的通信也使用,但是少了上述通信媒介,同一窗口的两个组件间可以直接进行通信。
205、在上述步骤在向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作之后,当所述第一窗口或一个以上的第二窗口关闭时,将所述第一窗口或一个以上的第二窗口的组件的状态进行保存,以使所述第一窗口或一个以上的第二窗口的组件被打开时,显示所述第一窗口或一个以上的第二窗口的组件保存的最终状态。
图4A为多窗口页面锁定前的示意图,如图4B为多窗口页面锁定后的示意图,及图4B为执行触控操作指令操作之后的示意图,在图4B的多个窗口关闭之后,再重新打开时,仍然为图4B的状态,而不会保持图4A的状态。
图5示出了本发明实施例提供的一种多窗口组件间通信的装置的结构示意图,如图5所示,该多窗口组件间通信的装置包括:获取模块51和发布模块52。
获取模块51,用于在接收到第一窗口的第一消息事件时,根据所述第一消息事件,获取所述第一消息事件对应的触发对象,以及所述触发对象的操作指令,所述触发对象为一个以上第二窗口的至少一个组件;
发布模块52,用于向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作。
在具体应用中,所述装置还包括图5中未示出的:第一接收模块53、存储模块54和第二接收模块55。
第一接收模块53,用于在第一窗口发布第一消息事件时,接收所述第一窗口的第一消息事件。
存储模块54,用于存储所述第一消息事件。
第二接收模块55,用于接收一个以上第二窗口的组件订阅的第二消息事件。
上述第一消息事件或所述第二消息事件包括下述的至少一种:
配置窗口属性的事件、触控事件、命令事件。
在一个可实现的方式中,所述发布模块52,具体用于: 
在获取所述第一消息事件对应的触发对象与订阅第二消息事件对应的所述一个以上第二窗口的组件一致时,向所述一个以上第二窗口的组件发布第一消息事件对应的操作指令。
为了防止窗口之间的通信被瘫痪,所述装置还包括图5中未示出的:窗口标识符添加模块56。
窗口标识符添加模块56,用于为所述第一窗口和一个以上第二窗口添加窗口标识符,所述一个以上第二窗口通过所述窗口标识符订阅所述第二消息事件,
所述获取模块51,具体用于: 
在接收到第一窗口的第一消息事件时,获取所述第一窗口对应的触发对象的窗口标识符;
所述发布模块52,具体用于: 
根据所述窗口标识符向与所述窗口标识符对应的触发对象发布所述操作指令。
在所述发布模块发布所述操作指令之后,在所述第一窗口或一个以上的第二窗口关闭时,将所述第一窗口或一个以上的第二窗口的组件的状态进行保存,以使再次打开所述第一窗口或一个以上的第二窗口的组件时,显示存储后的所述第一窗口或一个以上的第二窗口的组件的状态。
上述装置与上述方法是一一对应的,上述方法的详细例子说明也同样适用于该装置,本发明不对上述装置的实施细节进行详细说明。
本发明实施例还公开了:
A1、一种多窗口组件间通信的装置,包括:
获取模块,用于在接收到第一窗口的第一消息事件时,根据所述第一消息事件,获取所述第一消息事件对应的触发对象,以及所述触发对象的操作指令,所述触发对象为一个以上第二窗口的至少一个组件;
发布模块,用于向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作。
A2、根据A1所述的装置,所述装置还包括:
第一接收模块,用于在第一窗口发布第一消息事件时,接收所述第一窗口的第一消息事件。
A3、根据A2所述的装置,所述装置还包括:
第二接收模块,用于接收一个以上第二窗口的组件订阅的第二消息事件;
所述发布模块,具体用于:
在所述触发对象与所述第二消息事件对应的所述一个以上第二窗口的组件一致时,向所述一个以上第二窗口的组件发布所述操作指令。
A4、根据A3所述的装置,所述装置还包括:
窗口标识符添加模块,用于为所述第一窗口和一个以上第二窗口添加窗口标识符,所述一个以上第二窗口通过所述窗口标识符订阅所述第二消息事件,
和/或,
所述获取模块,具体用于:
在接收到第一窗口的第一消息事件时,获取所述第一窗口对应的触发对象的窗口标识符;
所述发布模块,具体用于:
根据所述窗口标识符向与所述窗口标识符对应的触发对象发布所述操作指令。
A5、根据A1所述的装置,所述装置还包括:
存储模块,用于存储所述第一消息事件,
所述存储模块,具体用于:
在所述发布模块发布所述操作指令之后,在所述第一窗口或一个以上的第二窗口关闭时,将所述第一窗口或一个以上的第二窗口的组件的状态进行保存,以使所述第一窗口或一个以上的第二窗口的组件被打开时,显示所述第一窗口或一个以上的第二窗口的组件保存的最终状态。
A6、根据A1至A5中任一项所述的装置,所述第一消息事件或所述第二消息事件包括下述的至少一种:
配置窗口属性的事件、触控事件、命令事件。
B7、一种多窗口组件间通信的方法,包括:
在接收到第一窗口的第一消息事件时,根据所述第一消息事件,获取所述第一消息事件对应的触发对象,以及所述触发对象的操作指令,所述触发对象为一个以上第二窗口的至少一个组件;
向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作。
B8、根据B7所述的方法,所述方法还包括:
在第一窗口发布第一消息事件时,接收所述第一窗口的第一消息事件。
B9、根据B8所述的方法,所述方法还包括:
接收一个以上第二窗口的组件订阅的第二消息事件;
相应地,向所述触发对象发布所述操作指令,包括:
在所述触发对象与所述第二消息事件对应的所述一个以上第二窗口的组件一致时,向所述一个以上第二窗口的组件发布所述操作指令。
B10、根据B9所述的方法,所述方法还包括:
为所述第一窗口和一个以上第二窗口添加窗口标识符,所述一个以上第二窗口通过所述窗口标识符订阅所述第二消息事件,
和/或,
在接收到第一窗口的第一消息事件时,获取所述第一窗口对应的触发对象的窗口标识符,
相应地,向所述触发对象发布所述操作指令,包括:
根据所述窗口标识符向与所述窗口标识符对应的触发对象发布所述操作指令。
B11、根据B7所述的方法,所述方法还包括:
存储所述第一消息事件,
相应的,在向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作之后,所述方法还包括:
当所述第一窗口或一个以上的第二窗口关闭时,将所述第一窗口或一个以上的第二窗口的组件的状态进行保存,以使所述第一窗口或一个以上的第二窗口的组件被打开时,显示所述第一窗口或一个以上的第二窗口的组件保存的最终状态。
B12、根据B7至B11中任一项所述的方法,所述第一消息事件或所述第二消息事件包括下述的至少一种:
配置窗口属性的事件、触控事件、命令事件。
本发明的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在于该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是互相排斥之处,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元 进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种浏览器终端的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释 为名称。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (10)

1.一种多窗口组件间通信的装置,其特征在于,包括:
获取模块,用于在接收到第一窗口的第一消息事件时,根据所述第一消息事件,获取所述第一消息事件对应的触发对象,以及所述触发对象的操作指令,所述触发对象为一个以上第二窗口的至少一个组件;
发布模块,用于向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括:
第一接收模块,用于在第一窗口发布第一消息事件时,接收所述第一窗口的第一消息事件。
3.根据权利要求2所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收一个以上第二窗口的组件订阅的第二消息事件;
所述发布模块,具体用于:
在所述触发对象与所述第二消息事件对应的所述一个以上第二窗口的组件一致时,向所述一个以上第二窗口的组件发布所述操作指令。
4.根据权利要求3所述的装置,其特征在于,所述装置还包括:
窗口标识符添加模块,用于为所述第一窗口和一个以上第二窗口添加窗口标识符,所述一个以上第二窗口通过所述窗口标识符订阅所述第二消息事件,
和/或,
所述获取模块,具体用于:
在接收到第一窗口的第一消息事件时,获取所述第一窗口对应的触发对象的窗口标识符;
所述发布模块,具体用于:
根据所述窗口标识符向与所述窗口标识符对应的触发对象发布所述操作指令。
5.根据权利要求1所述的装置,其特征在于,所述装置还包括:
存储模块,用于存储所述第一消息事件,
所述存储模块,具体用于:
在所述发布模块发布所述操作指令之后,在所述第一窗口或一个以上的第二窗口关闭时,将所述第一窗口或一个以上的第二窗口的组件的状态进行保存,以使所述第一窗口或一个以上的第二窗口的组件被打开时,显示所述第一窗口或一个以上的第二窗口的组件保存的最终状态。
6.一种多窗口组件间通信的方法,其特征在于,包括:
在接收到第一窗口的第一消息事件时,根据所述第一消息事件,获取所述第一消息事件对应的触发对象,以及所述触发对象的操作指令,所述触发对象为一个以上第二窗口的至少一个组件;
向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在第一窗口发布第一消息事件时,接收所述第一窗口的第一消息事件。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收一个以上第二窗口的组件订阅的第二消息事件;
相应地,向所述触发对象发布所述操作指令,包括:
在所述触发对象与所述第二消息事件对应的所述一个以上第二窗口的组件一致时,向所述一个以上第二窗口的组件发布所述操作指令。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
为所述第一窗口和一个以上第二窗口添加窗口标识符,所述一个以上第二窗口通过所述窗口标识符订阅所述第二消息事件,
和/或,
在接收到第一窗口的第一消息事件时,获取所述第一窗口对应的触发对象的窗口标识符,
相应地,向所述触发对象发布所述操作指令,包括:
根据所述窗口标识符向与所述窗口标识符对应的触发对象发布所述操作指令。
10.根据权利要求6所述的方法,其特征在于,所述方法还包括:
存储所述第一消息事件,
相应的,在向所述触发对象发布所述操作指令,以使所述触发对象执行所述操作指令对应的操作之后,所述方法还包括:
当所述第一窗口或一个以上的第二窗口关闭时,将所述第一窗口或一个以上的第二窗口的组件的状态进行保存,以使所述第一窗口或一个以上的第二窗口的组件被打开时,显示所述第一窗口或一个以上的第二窗口的组件保存的最终状态。
CN201410853210.5A 2014-12-31 2014-12-31 多窗口组件间通信的方法及装置 Pending CN104598322A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410853210.5A CN104598322A (zh) 2014-12-31 2014-12-31 多窗口组件间通信的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410853210.5A CN104598322A (zh) 2014-12-31 2014-12-31 多窗口组件间通信的方法及装置

Publications (1)

Publication Number Publication Date
CN104598322A true CN104598322A (zh) 2015-05-06

Family

ID=53124136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410853210.5A Pending CN104598322A (zh) 2014-12-31 2014-12-31 多窗口组件间通信的方法及装置

Country Status (1)

Country Link
CN (1) CN104598322A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105162683A (zh) * 2015-08-04 2015-12-16 广州华多网络科技有限公司 显示窗口信息发布方法及***
CN105205004A (zh) * 2015-10-28 2015-12-30 广州华多网络科技有限公司 实现多窗口竞拍控制的方法及***
CN105653267A (zh) * 2015-12-28 2016-06-08 心动网络股份有限公司 电子设备及数据处理方法
CN111163345A (zh) * 2018-11-07 2020-05-15 杭州海康威视***技术有限公司 一种图像渲染方法及装置
WO2021056343A1 (zh) * 2019-09-26 2021-04-01 深圳市大疆创新科技有限公司 显示界面控制方法、通信控制方法、***及控制终端
CN114827231A (zh) * 2022-04-11 2022-07-29 杭州指令集智能科技有限公司 基于浏览器本地存储实现多窗口点对点通信的方法及***
CN115113774A (zh) * 2022-06-28 2022-09-27 上海中汇亿达金融信息技术有限公司 屏幕锁定和解锁的方法及相关装置
WO2024092940A1 (zh) * 2022-10-31 2024-05-10 海尔优家智能科技(北京)有限公司 组件间的消息传递方法和装置、存储介质及电子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102970330A (zh) * 2012-10-25 2013-03-13 浙江宇视科技有限公司 一种浏览器之间交互的实现方法和装置
CN103677525A (zh) * 2013-12-16 2014-03-26 宇龙计算机通信科技(深圳)有限公司 操作响应方法和终端
US20140136954A1 (en) * 2012-11-13 2014-05-15 International Business Machines Corporation Automatically Rendering Web or Hybrid Applications Natively

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102970330A (zh) * 2012-10-25 2013-03-13 浙江宇视科技有限公司 一种浏览器之间交互的实现方法和装置
US20140136954A1 (en) * 2012-11-13 2014-05-15 International Business Machines Corporation Automatically Rendering Web or Hybrid Applications Natively
CN103677525A (zh) * 2013-12-16 2014-03-26 宇龙计算机通信科技(深圳)有限公司 操作响应方法和终端

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105162683A (zh) * 2015-08-04 2015-12-16 广州华多网络科技有限公司 显示窗口信息发布方法及***
CN105162683B (zh) * 2015-08-04 2018-08-03 广州华多网络科技有限公司 显示窗口信息发布方法及***
CN105205004A (zh) * 2015-10-28 2015-12-30 广州华多网络科技有限公司 实现多窗口竞拍控制的方法及***
CN105205004B (zh) * 2015-10-28 2018-03-23 广州华多网络科技有限公司 实现多窗口竞拍控制的方法及***
CN105653267A (zh) * 2015-12-28 2016-06-08 心动网络股份有限公司 电子设备及数据处理方法
CN105653267B (zh) * 2015-12-28 2019-05-07 心动网络股份有限公司 电子设备及数据处理方法
CN111163345A (zh) * 2018-11-07 2020-05-15 杭州海康威视***技术有限公司 一种图像渲染方法及装置
WO2021056343A1 (zh) * 2019-09-26 2021-04-01 深圳市大疆创新科技有限公司 显示界面控制方法、通信控制方法、***及控制终端
CN114827231A (zh) * 2022-04-11 2022-07-29 杭州指令集智能科技有限公司 基于浏览器本地存储实现多窗口点对点通信的方法及***
CN114827231B (zh) * 2022-04-11 2023-09-26 杭州指令集智能科技有限公司 基于浏览器本地存储实现多窗口点对点通信的方法及***
CN115113774A (zh) * 2022-06-28 2022-09-27 上海中汇亿达金融信息技术有限公司 屏幕锁定和解锁的方法及相关装置
CN115113774B (zh) * 2022-06-28 2023-10-24 上海中汇亿达金融信息技术有限公司 屏幕锁定和解锁的方法及相关装置
WO2024092940A1 (zh) * 2022-10-31 2024-05-10 海尔优家智能科技(北京)有限公司 组件间的消息传递方法和装置、存储介质及电子装置

Similar Documents

Publication Publication Date Title
CN104598322A (zh) 多窗口组件间通信的方法及装置
US9582601B2 (en) Combining server-side and client-side user interface elements
US8386955B1 (en) User-optimized content for web browsing windows
US8782127B2 (en) Notification based web applications
CN104657451B (zh) 页面的处理方法及装置
US20130086102A1 (en) Asynchronous Communication in Web Applications
CN108304234B (zh) 一种页面展示方法及装置
US20130152010A1 (en) Multiple tab stack user interface
CN104636139A (zh) 一种可视化跨平台移动应用开发与生成***
US8682851B2 (en) Device specific folders for bookmark synchronization
US20130246966A1 (en) Multiple Display Modes for a Pane in a Graphical User Interface
US20130086020A1 (en) Interactive Web Application Framework
KR20080007320A (ko) 브라우저에 호스팅된 오브젝트를 위한 트래블 로그 통합의제공
CN102982169A (zh) 用于隔离网页插件的浏览器和方法
US20150052496A1 (en) Providing a user interface library for building web-based applications
CN108762956A (zh) 获取Native本地数据的方法、服务器、移动终端及存储介质
CN103955475A (zh) 一种网页标签信息的显示方法、装置和浏览器
CN103019733A (zh) 一种用于浏览器的活动对象执行方法、***及浏览器
CN105447383A (zh) 浏览器运行环境检测方法、客户端、服务器及***
CN103034503B (zh) 一种脚本执行方法、***及浏览器
CN103473035A (zh) 截屏方法和装置
CN102968252A (zh) 页面后退/前进的方法及设备
CA2938293A1 (en) Control program for accessing browser data and for controlling appliance
CN103064709A (zh) 浏览器活动对象的执行方法、***及浏览器
CN105573579A (zh) 一种搜索栏的操作方法及终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20161221

Address after: 100015 Jiuxianqiao Chaoyang District Beijing Road No. 10, building 15, floor 17, layer 1701-26, 3

Applicant after: BEIJING QI'ANXIN SCIENCE & TECHNOLOGY CO., LTD.

Address before: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant before: Beijing Qihoo Technology Co., Ltd.

Applicant before: Qizhi Software (Beijing) Co., Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20150506

RJ01 Rejection of invention patent application after publication