一种时间控制方法及系统的制作方法
【专利摘要】本发明提供一种时间控制方法,应用在计算机领域,包括以下步骤:设置时间控制模块并定义一个事件队列,其中,该时间控制模块包括基本的时间函数,通讯机制,时间事件处理,添加移除时间事件,1个或多个事件主体;将需要刷新的事件定义出来,将其Notification和其参数通过事件注册加入到定义好的所述事件队列中;通过基本的时间函数中的timer的事件侦听器,将队列中的消息一一取出,调用相应的事件处理函数并加入到刷新事件中,通过调用Proxy层的接口,实现自动刷新。
【专利说明】一种时间控制方法及系统
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种时间控制方法及系统。
【背景技术】
[0002]ActionScript是Flex的基本程序语言。Flex作为一种界面设计语言是相当灵活的。在B/S架构中,经常要用到前端对后台某些函数的多次或不停的循环请求,这种请求方式的处理可以是后台不停地对前端的数据推送,也可以是前端不停地对后台的数据请求。为了系统的稳定性及安全性考虑,对于频繁的数据交换来说,后台不停对前端的数据发送会使得系统变得不安全,而且容易导致前端数据的冗余,所以后台对前端的数据推送不是一种好的方式。一般来说,都是通过前端向后台发送请求,来获取数据的更新。
[0003]B/S架构的全称为Browser/Server,即浏览器/服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,服务器端和数据库DB端构成三层架构,这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。B/S架构中,显示逻辑交给了 Web浏览器,事务处理逻辑在放在了服务器上,这样就避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,因此也被成为瘦客户端。
[0004]目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。其所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
[0005]由于B/S架构管理软件只安装在服务器端上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器端通过浏览器实现,极少部分事务逻辑在前端实现,所有的客户端只有浏览器。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。
[0006]客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。
[0007]这种方式虽然简单,不需要前端做业务逻辑,但是容易引发很多问题,前端的不刷新会导致数据过时,当向后台提交数据时会造成数据的不稳定和错误。因此需要前端能够根据业务情况不停地向服务器请求数据,然后保持页面的自动刷新。一般来说,自动刷新机制由前端负责。Flex自身提供了 Timer事件。通过前端自身的刷新来向服务器请求数据,虽然会使得前端的压力变大,但是却能够减小服务器的压力。在系统中,前端数据的刷新是一个很重要的问题,刷新的效率直接体现了系统的实时性和稳定性。因此,需要寻找一种更好的前端刷新方式显得很有必要了。
【发明内容】
[0008]本发明提供一种时间控制方法及系统,以解决上述问题。
[0009]本发明提供一种时间控制方法。上述方法包括以下步骤:设置时间控制模块并定义一个事件队列,其中,该时间控制模块包括基本的时间函数,通讯机制,时间事件处理,添加移除时间事件,I个或多个事件主体;
[0010]将需要刷新的事件定义出来,将其Notification和其参数通过事件注册加入到定义好的所述事件队列中;
[0011]通过基本的时间函数中的timer的事件侦听器,将队列中的消息一一取出,调用相应的事件处理函数并加入到刷新事件中,通过调用Proxy层的接口,实现自动刷新。
[0012]本发明还提供一种时间控制系统,包括:时间控制装置、事件添加装置、自动刷新装置;时间控制装置通过事件添加装置与自动刷新装置相连;
[0013]时间控制装置,用于设置时间控制模块并定义一个事件队列,其中,该时间控制模块包括基本的时间函数,通讯机制,时间事件处理,添加移除时间事件,I个或多个事件主体;
[0014]事件添加装置,用于将需要刷新的事件定义出来,将其Notification和其参数通过事件注册加入到定义好的所述事件队列中;
[0015]自动刷新装置,用于通过基本的时间函数中的timer的事件侦听器,将队列中的消息一一取出,调用相应的事件处理函数并加入到刷新事件中,通过调用Proxy层的接口,实现自动刷新。
[0016]通过实施本发明的技术方案,将所有时间事件的处理都交给一个统一的方法去做,只需要发送一个消息,便可以启动时间事件的处理,保证了系统的统一性和安全性,同时使得时间事件处理变得简单,避免了因多个时间事件的使用而导致系统性能的下降;另夕卜,本能发明可以在不修改源程序的前提下,增加更多的时间控制,如在系统中需要对某些事件增加时间处理,只需要发送一个消息,将任务交给统一的时间控制方法,增加了系统的灵活性。
【专利附图】
【附图说明】
[0017]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0018]图1所示为本发明实施例2的基于ActionScript的时间控制方法流程图;
[0019]图2所示为本发明实施例1的Flex的MVC框架示意图;
[0020]图3所示为本发明实施例3的系统结构图。
【具体实施方式】
[0021]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0022]本发明提供了一种时间控制方法,包括以下步骤:[0023]设置时间控制模块并定义一个事件队列,其中,该时间控制模块包括基本的时间函数,通讯机制,时间事件处理,添加移除时间事件,I个或多个事件主体;
[0024]将需要刷新的事件定义出来,将其Notification和其参数通过事件注册加入到定义好的所述事件队列中;
[0025]通过基本的时间函数中的timer的事件侦听器,将队列中的消息一一取出,调用相应的事件处理函数并加入到刷新事件中,通过调用Proxy层的接口,实现自动刷新。
[0026]其中,所述基本的时间函数就是timer计时器,首先声明一个timer计时器,并创建一个实例,然后启动timer计时器,如下所示:
[0027](I) timer=new Timer(delay, repeatCount)
[0028](2) timer.addEventListener (TimerEvent.TIMER,事件侦听器)
[0029](3) timer, start ()
[0030]其中,(I)声明了一个新的timer实例,delay是延迟的时间,repeatCount是重复的次数,默认为0,即无限循环,该实例要作为全局对象使用;
[0031]其中,(2)是计时器的时间侦听事件,一旦创建了 Timer实例,下一步必须添加一个事件侦听器来处理发出的时间事件,将时间事件处理放在事件监听器中,即每次都执行该时间事件处理;
[0032]其中,(3)是启动该计时器;若需要在执行中停止,则需要timer.stopO,若要销毁timer实例,则需要timer=null。
[0033]其中,将需要刷新的事件定义出来,将其Notification和其参数通过事件注册加入到定义好的所述事件队列中的过程为:通过Notification将需要刷新的事件定义出来,将其Notification和其参数通过事件注册加入到定义好的事件队列中。
[0034]其中,时间事件处理是指:通过基本的时间函数中的timer的事件侦听器,将队列中的消息一一取出,调用相应的事件处理函数,此时将所有的函数调用接口放在此处进行循环,这些调用形成一个时间处理队列,并加入到刷新事件中,通过调用Proxy层的接口,这样就实现了自动刷新。
[0035]其中,添加或移除时间事件是将需要进行时间事件处理的接口加入到时间处理队列中,或者将其中时间事件从时间处理队列中移除。
[0036]其中,添加的方法即将MVC框架中View层的请求消息和参数加入到时间处理队列中;移除的方法只需要根据名称将其相关的对象从时间处理队列中移除。
[0037]其中,通讯机制主要负责处理所有的消息传递;事件主体是指代理Proxy。
[0038]图1所示为本发明实施例1的基于ActionScript的时间控制方法流程图,详细说明如下:
[0039]步骤101:在Command中写一个时间控制方法(如TimerHandleCommand),该方法需要在MVC框架中注册,并在其构造函数中生成一个timer实例,定义好刷新的时间(如2秒)和刷新次数,定义一个事件队列。
[0040]该时间控制方法包括一个基本的时间函数,通讯机制(主要负责处理所有的消息传递),一个时间事件处理,一个添加移除时间事件,多个事件主体。
[0041]基本的时间函数就是timer计时器,首先声明一个timer计时器,并创建一个实例,然后启动timer计时器,如下所示:[0042](I) timer=new Timer(delay, repeatCount)
[0043](2) timer.addEventListener (TimerEvent.TIMER,事件侦听器)
[0044](3) timer, start ()
[0045]其中,(I)声明了一个新的timer实例,delay是延迟的时间,repeatCount是重复的次数,默认为0,即无限循环。该实例要作为全局对象使用。
[0046]其中,(2)是计时器的时间侦听事件,一旦创建了 Timer实例,下一步必须添加一个事件侦听器来处理发出的时间事件,将时间事件处理放在事件监听器中,即每次都执行该时间事件处理。
[0047]其中,(3)是启动该计时器。若需要在执行中停止,则需要timer.stopO,若要销毁timer实例,则需要timer=null。
[0048]基本时间函数是基础,负责时间的启动和停止及销毁,包括循环的次数和时间等。
[0049]步骤102:通过Notification将需要刷新的事件定义出来,将其Notification和其参数通过事件注册加入到定义好的事件队列中;
[0050]步骤103:通过基本的时间函数中的timer的事件侦听器,将队列中的消息--取
出,调用相应的事件处理函数(将所有的函数调用接口放在此处进行循环,这些调用形成一个时间处理队列(时间事件处理)),并加入到刷新事件中,通过调用Proxy层的接口,这样就实现了自动刷新。
[0051]其中,在Flex中,所有与后台的数据交互在代理Proxy中,这些Proxy就是事件主体,单独的调用Proxy会向后台发送一次请求,但将Proxy加入时间处理的主体中,便可以实现刷新操作。
[0052]队列中存放的是当前需要循环的事件主体,事件主体负责向服务器请求数据,并接收服务器的数据。当队列为空时,不进行任何操作。函数如下所示:
[0053]
【权利要求】
1.一种时间控制方法,其特征在于,包括以下步骤: 设置时间控制模块并定义一个事件队列,其中,该时间控制模块包括基本的时间函数,通讯机制,时间事件处理,添加移除时间事件,I个或多个事件主体; 将需要刷新的事件定义出来,将其Notification和其参数通过事件注册加入到定义好的所述事件队列中; 通过基本的时间函数中的timer的事件侦听器,将队列中的消息一一取出,调用相应的事件处理函数并加入到刷新事件中,通过调用Proxy层的接口,实现自动刷新。
2.根据权利要求1所述的方法,其特征在于:所述基本的时间函数就是timer计时器,首先声明一个timer计时器,并创建一个实例,然后启动timer计时器,如下所示:
(1)timer=new Timer(delay, repeatCount)
(2)timer.addEventListener (TimerEvent.TIMER,事件侦听器)
(3)timer, start () 其中,(I)声明了一个新的timer实例,delay是延迟的时间,repeatCount是重复的次数,默认为0,即无限循环,该实例要作为全局对象使用; 其中,(2)是计时器的时间侦听事件,一旦创建了 Timer实例,下一步必须添加一个事件侦听器来处理发出的时间事件,将时间事件处理放在事件监听器中,即每次都执行该时间事件处理; 其中,(3)是启动该计时器;若需要在执行中停止,则需要timer.stopO,若要销毁timer 实例,则需要 timer=null。
3.根据权利要求1所述的方法,其特征在于:将需要刷新的事件定义出来,将其Notification和其参数通过事件注册加入到定义好的所述事件队列中的过程为:通过Notification将需要刷新的事件定义出来,将其Notification和其参数通过事件注册加入到定义好的事件队列中。
4.根据权利要求1所述的方法,其特征在于:时间事件处理是指:通过基本的时间函数中的timer的事件侦听器,将队列中的消息一一取出,调用相应的事件处理函数,此时将所有的函数调用接口放在此处进行循环,这些调用形成一个时间处理队列,并加入到刷新事件中,通过调用Proxy层的接口,这样就实现了自动刷新。
5.根据权利要求1所述的方法,其特征在于:添加或移除时间事件是将需要进行时间事件处理的接口加入到时间处理队列中,或者将其中时间事件从时间处理队列中移除。
6.根据权利要求5所述的方法,其特征在于:添加的方法即将MVC框架中View层的请求消息和参数加入到时间处理队列中;移除的方法只需要根据名称将其相关的对象从时间处理队列中移除。
7.根据权利要求1所述的方法,其特征在于:通讯机制主要负责处理所有的消息传递;事件主体是指代理Proxy。
8.一种时间控制系统,其特征在于,包括:时间控制装置、事件添加装置、自动刷新装置;时间控制装置通过事件添加装置与自动刷新装置相连; 时间控制装置,用于设置时间控制模块并定义一个事件队列,其中,该时间控制模块包括基本的时间函数,通讯机制,时间事件处理,添加移除时间事件,I个或多个事件主体; 事件添加装置,用于将需要刷新的事件定义出来,将其Notification和其参数通过事件注册加入到定义好的所述事件队列中; 自动刷新装置,用于通 过基本的时间函数中的timer的事件侦听器,将队列中的消息一一取出,调用相应的事件处理函数并加入到刷新事件中,通过调用Proxy层的接口,实现自动刷新。
【文档编号】G06F9/48GK103577264SQ201310581602
【公开日】2014年2月12日 申请日期:2013年11月18日 优先权日:2013年11月18日
【发明者】周国伟 申请人:浪潮(北京)电子信息产业有限公司