[发明专利]控件状态更新方法及装置有效
申请号: | 201611198103.9 | 申请日: | 2016-12-22 |
公开(公告)号: | CN108228207B | 公开(公告)日: | 2021-06-04 |
发明(设计)人: | 刘济清 | 申请(专利权)人: | 珠海金山办公软件有限公司;北京金山办公软件股份有限公司;广州金山移动科技有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 项京;马敬 |
地址: | 519015 广东省珠*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 控件 状态 更新 方法 装置 | ||
本发明实施例提供了一种控件状态更新方法及装置。该方法包括:第一级别的控件接收对象发送的更新通知;控件的级别为预先划分的;将第一级别的控件确定为当前级别控件;当前级别控件在自身状态为可见时,根据更新通知进行状态更新;若当前级别控件有下一级别的控件,则当前级别控件向下一级别的控件发送更新通知;将收到更新通知的下一级别的控件确定为当前级别控件;返回当前级别控件在自身状态为可见时,根据更新通知进行状态更新的步骤。如此,能够实现在需要更新时进行状态更新,减少了不必要的界面刷新,提高界面的响应速度,同时通过对控件进行分级,使得更新通知能够逐级发送,降低了调试的难度。
技术领域
本发明涉及计算机技术领域,特别是涉及一种控件状态更新方法及装置。
背景技术
观察者模式是软件开发中最常用的设计模式之一,在观察者模式中,多个观察者事件注册在一个对象上,当对象检测到这些观察者事件中的任一事件的状态发生变化时,会通知注册在该对象上的所有观察者更新状态。例如,在文字处理系统(Word ProcessingSystem,WPS)办公软件中选中了一段文本,对象检测到选中事件发生,则向工具栏上相应的字号、字体颜色等控件(也就是这个事件的观察者)发送更新通知,这些控件按照更新通知将各自的状态更新为与选中的文本的字号和字体颜色对应的状态。
观察者模式常用的一个实现框架是事件总线(EventBus),如图1所示,EventBus包含三个要素:事件(Event)、事件订阅者(Subscriber)(也就是事件的观察者)和事件发布者(Publisher)(也就是对象),Subscriber用于接收特定的事件,Publisher用于通知Subscriber有事件发生。其中,Event可以使任意类型对象;Subscriber都是以约定的onEvent开头的函数;Publisher可以通过post(Object)在任意线程任意位置发送事件。
在EventBus中,事件的派发有同步派发和异步派发两种模式,在同步派发时,Publisher先向第一个Subscriber发送更新通知,在第一个Subscriber更新完后,再向第二个Subscriber发送更新通知,以此类推,每向一个Subscriber发送更新通知后都需要等该Subscriber更新完毕后再向下一个Subscriber发送更新通知;而在异步派发中,Publisher直接向各个Subscriber发送更新通知,由各个Subscriber自己进行状态更新。
在上述现有技术的技术方案中,当一个被注册的事件发生时,不管事件是同步派发还是异步派发,都会将更新通知发送给所有的控件,但实际上并不是所有的控件都是可见的,对于不可见的控件来说,此时是没有必要更新状态的,可见,现有的技术方案会导致许多不必要的控件状态更新,使得界面上控件刷新频繁,界面响应速度较慢。
发明内容
本发明实施例的目的在于提供一种控件状态更新方法及装置,以减少界面上不必要的控件状态更新,提高界面响应速度。具体技术方案如下:
一种控件状态更新方法,包括:
第一级别的控件接收对象发送的更新通知;所述控件的级别为预先划分的;
将所述第一级别的控件确定为当前级别控件;
所述当前级别控件在自身状态为可见时,根据所述更新通知进行状态更新;
若所述当前级别控件有下一级别的控件,则所述当前级别控件向下一级别的控件发送所述更新通知;
将收到所述更新通知的下一级别的控件确定为当前级别控件;
返回所述当前级别控件在自身状态为可见时,根据所述更新通知进行状态更新的步骤。
如上所述的方法,其中,在所述当前级别控件向下一级别的控件发送所述更新通知之前,还包括:
所述当前级别控件确定需要更新的所述下一级别的控件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海金山办公软件有限公司;北京金山办公软件股份有限公司;广州金山移动科技有限公司,未经珠海金山办公软件有限公司;北京金山办公软件股份有限公司;广州金山移动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611198103.9/2.html,转载请声明来源钻瓜专利网。