多核浏览器下的消息传递方法与装置制造方法及图纸

技术编号:8300762 阅读:238 留言:0更新日期:2013-02-07 04:08
本发明专利技术提供一种多核浏览器下的消息传递方法与装置,用于解决多核浏览器下每一个核所对应的窗口均对接收的消息进行处理的问题。该多核浏览器下的消息传递方法包括:多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,通过所述主框架的处理程序对所述消息进行处理。本发明专利技术的技术方案的有益效果为:由多核浏览器的主框架对接收到的消息进行统一的处理,避免各个核独自处理,从开发的角度,节省了开发时间,从用户的角度,由主框架统一处理用户输入的消息,并统一呈现处理结果,提高了用户的用户体验。

【技术实现步骤摘要】

本专利技术属于浏览器技术,涉及一种消息传递方法,更具体的涉及一种多核浏览器下的消息传递方法与装置
技术介绍
在Windows应用程序中,窗体是由一种称为“UI线程(User Interface Thread)”的特殊类型的线程创建的。首先,Π线程是一种“线程”,所以它具有一个线程应该具有的所有特征,比如有一个线程函数和一个线程ID。其次,“UI线程”又是“特殊”的,这是因为UI线程的线程函数中会创建一种特殊的对象——窗体,同时,还一并负责创建窗体上的各种控件。窗体和控件具有接收用户操作的功能,它们是用户使用整个应用程序的媒介,没有这样一个媒介,用户就无法控制整个应用程序的运行和停止,往往也无法直接看到程序的·运行过程和最终结果。但是,窗体和控件又不具备独立地响应用户操作(比如键盘和鼠标操作)的功能,比如用鼠标点击了一个按钮,并且看到了鼠标“陷”下去,然后又还原,之后,就会在显示器上看到了程序执行了此按钮所对应的任务,其实,窗体和控件之所以能响应用户操作,关键在于负责创建该操作的Π线程拥有一个“消息循环(Message Loop) ”,这个消息循环由线程函数负责启动。而在多核浏览器中,每一个核都会拥有一个UI线程,也就是说每个核都有单独处理用户操作的能力,这样一来,对于多核浏览器,要为每一核都要对应开发出一套用户操作结果,而对用户来说,相同的执行操作被不同的核接收到,其显示结果就会不同。因此,在现有技术中,多核浏览器中存在每一个核都会对获取到的消息进处理而带来的开发资源浪费的问题。
技术实现思路
本专利技术公开一种多核浏览器下的消息传递方法与装置,用于解决现有技术中存在的因多核浏览器中存在每一个核都会对获取到的消息进行处理而带来的开发资源浪费的问题。为实现上述目的,根据本专利技术的一个方面,提供一种多核浏览器下的消息传递方法,并采用以下技术方案多核浏览器下的消息传递方法包括多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,由所述主框架的处理程序对所述消息进行处理。进一步地,所述多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,由所述主框架的处理程序对所述消息进行处理包括所述多核浏览器的任一核所对应的UI线程获取到所述消息;所述任一核所对应的UI线程将所述消息通过所述任一核所对应的IO线程发送给所述主框架;所述主框架的IO线程接收所述消息并将所述消息传递给所述主框架的Π线程。根据本专利技术的另外一个方面,提供一种多核浏览器下的消息传递装置,并采用以下技术方案多核浏览器下的消息传递装置包括传递模块,用于多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,并由所述主框架的处理程序对所述消息进行处理。进一步地,所述传递模块包括获取模块,用于所述多核浏览器的任一核所对应的UI线程获取到所述消息;发送模块,用于所述任一核所对应的UI线程将所述消息通过所述任一核所对应的IO线程发送给所述主框 架;接收模块,用于所述主框架的IO线程接收所述消息并将所述消息传递给所述主框架的UI线程。根据本专利技术的上述技术方案,由多核浏览器的主框架对接收到的消息进行统一的处理,避免各个核独自处理,从开发的角度,节省了开发时间,从用户的角度,由主框架统一处理用户输入的消息,并统一呈现处理结果,提高了用户的用户体验。除了上面所描述的目的、特征和优点之外,本专利技术还有其它的目的、特征和优点。下面将参照图,对本专利技术作进一步详细的说明。附图说明附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中图I表示本专利技术实施例所述的多核浏览器主框架与多内核之间的关系示意图;图2表示本专利技术实施例一所述的多核浏览器下的消息传递方法的主要流程图;图3表示本专利技术实施例二所述的多核浏览器下的消息传递方法的示意图;图4表示本专利技术实施例所述的多核浏览器下的消息传递装置的主要结构示意图。具体实施例方式以下结合附图对本专利技术的实施例进行详细说明,但是本专利技术可以由权利要求限定和覆盖的多种不同方式实施。图I表示本专利技术实施例所述的多核浏览器主框架与多内核之间的关系示意图。本实施例以多核浏览器主框架browser的主进程有两类子进程为例,两类子进程可以为任何内核的子进程,如图I中的chrome_render和ie_render,在图I中,browser为该多核浏览器的主框架。图2表示本专利技术实施例一所述的多核浏览器下的消息传递方法的主要流程图。参见图2所示,多核浏览器下的消息传递方法包括SlOl :多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架;S103 :由所述主框架的处理程序对所述消息进行处理。在步骤SlOl中,多核浏览器将获取到的消息传递给所述多核浏览器的主框架,意指不管多核浏览器的哪一个核或者说窗体截获到的消息,均禁止处理该消息,将该消息传递给多核浏览器的主框架所对应的处理程序进行处理。该方法的优点可用一个具体的实例进行说明,现有技术的技术效果为用户在多核浏览器中的一个窗体中执行单击鼠标“右键”的操作,接收该消息的窗体,对该消息进行处理后,会给出一个处理的结果,显示给用户的结果就是在该窗体上呈现一“菜单”,如果该操作在另外一个窗体上执行,则显示的结果就是另外一个窗体所对应的“菜单”,这样,呈现给用户的两个“菜单”就是不一样的,同样道理,如果该操作被多核浏览器的主框架接收后并进行处理,呈现给用户的“菜单”和前两个就都是不一样的。而采用本专利技术的技术方案,所有消息均由主框架进行处理,相应的,也就只要开发一个“菜单”,不管用户单击鼠标“右键”的操作被那个窗口接收到,均会将该消息传递给主框架,由主框架对应的处理程序进行处理,显示给用户的“菜单”也就是只有一个。图3表示本专利技术实施例二所述的多核浏览器下的消息传递方法的主要流程图;本实施例为多核浏览器的IE render核截获了消息的情形。参见图3所示,多核浏览器下的消息传递方法包括S201 IE render 的 UI 线程截获消息; S202 :通过IE render的IO线程发给主框架browser ;S203 Browser的IO线程收到该消息后,提供给Browser的UI线程进行处理。具体而言,操作系统会监控计算机上的键盘和鼠标等输入设备,为每一个输入事件(由用户操作所引发,比如用户按了某个键)生成一个消息。根据事件发生时的情况(比如当前激活的窗体负责接收用户按键,而依据用户点击鼠标的坐标可以知道用户在哪个窗体区域内点击了鼠标),操作系统会确定出此消息应该发给哪个窗体对象。这些生成的消息会统一地先临时放置在一个“系统消息队列(system message queue) ”中,然后,操作系统有一个专门的线程负责从这一队列中取出消息,根据消息的目标对象(就是窗体的句柄),将其移动到创建它的Π线程所对应的消息队列中。操作系统在创建进程和线程时,都同时记录了大量的控制信息(比如通过进程控制块和句柄表可以查找到进程所创建的所有线程和引用的核心对象),因此,根据窗体句柄来确定此消息应属于哪个Π线程,在步骤S201中,在根据上述描述确定该消息属于IE render进程的UI线程时,可以通过IE render进程的IO线程发给主本文档来自技高网...

【技术保护点】
一种多核浏览器下的消息传递方法,其特征在于,包括:多核浏览器的任一核将获取到的消息传递给所述多核浏览器的主框架,由所述主框架的处理程序对所述消息进行处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:石淼磊徐鸣孙明焱
申请(专利权)人:北京金山安全软件有限公司可牛网络技术北京有限公司贝壳网际北京安全技术有限公司
类型:发明
国别省市:

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

1