[发明专利]事件响应方法和装置有效
申请号: | 201410032484.8 | 申请日: | 2014-01-23 |
公开(公告)号: | CN104808913B | 公开(公告)日: | 2019-08-06 |
发明(设计)人: | 李思广 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F3/0484 | 分类号: | G06F3/0484;G06F9/48;G06F16/958 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 罗振安 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 事件 响应 方法 装置 | ||
本发明公开了一种事件响应方法和装置,属于移动终端领域。所述方法包括:通过UI线程获取用户操作所对应的事件对象;通过所述UI线程检测是否需要将所述事件对象传递给内核线程;若检测结果为不需要将所述事件对象传递给所述内核线程,则通过所述UI线程对所述事件对象进行响应。本发明解决了现有的浏览器中的事件响应机制存在耗时严重以及响应缓慢的问题;实现了由UI线程在获取用户操作所对应的事件对象之后,直接由UI线程检测是否需要将事件对象传递给内核线程,省去了现有技术中将每个事件对象都传递给内核线程进行判断的耗时,大大提高了浏览器对用户操作的响应效率。
技术领域
本发明涉及移动终端领域,特别涉及一种事件响应方法和装置。
背景技术
安装于手机、平板电脑之类的电子设备中的浏览器通常在多线程环境下运行。在浏览器启动时,系统首先创建UI(User Interface,用户界面)线程,UI线程主要负责接收用户的操作事件、页面绘制以及将页面内容上屏显示等任务。在浏览器启动之后,系统还会创建内核线程,内核线程主要负责完成页面内容的解析、排版以及JavaScript脚本文件的执行等任务。
以浏览器对触摸事件的响应为例,当用户在使用电子设备中安装的浏览器浏览网页时,触摸当前页面中某个位置产生触发信号。电子设备接收到该触发信号之后,系统根据该触发信号将触摸事件转换为事件对象,并将该事件对象传递给浏览器。此时,UI线程获取该事件对象并将该事件对象传递给内核线程,内核线程判断其是否需要处理该事件对象。若判断结果为内核线程需要处理该事件对象,则内核线程处理该事件对象并在处理完成之后做出响应;若判断结果为内核线程不需要处理该事件对象,则内核线程将该事件对象返回给UI线程,由UI线程对该事件对象做出响应。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:对于不需要内核线程做出响应的事件对象,由于该事件对象需要经过UI线程与内核线程之间的来回传递以及内核线程的判断,此过程会产生一定的耗时;进一步地,当内核线程处理的事件对象较多时,由于内核线程无法对该事件对象及时做出判断,导致该事件对象重新回到UI线程的耗时会更大,最终导致浏览器对用户操作响应缓慢。因此,现有的浏览器中的事件响应机制存在耗时严重以及响应缓慢的问题。
发明内容
为了解决现有的浏览器中的事件响应机制存在耗时严重以及响应缓慢的问题,本发明实施例提供了一种事件响应方法和装置。所述技术方案如下:
第一方面,提供了一种事件响应方法,用于在多线程环境下运行的浏览器中,所述方法包括:
通过UI线程获取用户操作所对应的事件对象;
通过所述UI线程检测是否需要将所述事件对象传递给内核线程;
若检测结果为不需要将所述事件对象传递给所述内核线程,则通过所述UI线程对所述事件对象进行响应。
第二方面,提供了一种事件响应装置,用于在多线程环境下运行的浏览器中,所述装置包括:
事件获取模块,用于通过UI线程获取用户操作所对应的事件对象;
事件检测模块,用于通过所述UI线程检测是否需要将所述事件对象传递给内核线程;
事件响应模块,用于若检测结果为不需要将所述事件对象传递给所述内核线程,则通过所述UI线程对所述事件对象进行响应。
本发明实施例提供的技术方案带来的有益效果是:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410032484.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:按键控制方法与电子装置
- 下一篇:冷却管接头及马达冷却装置