CN106126233A - 一种基于弹射器的事件调度方法及装置 - Google Patents
一种基于弹射器的事件调度方法及装置 Download PDFInfo
- Publication number
- CN106126233A CN106126233A CN201610464347.0A CN201610464347A CN106126233A CN 106126233 A CN106126233 A CN 106126233A CN 201610464347 A CN201610464347 A CN 201610464347A CN 106126233 A CN106126233 A CN 106126233A
- Authority
- CN
- China
- Prior art keywords
- event
- ejector
- call request
- scheduling method
- device based
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种调度方法及装置,属于WEB信息处理领域,具体是涉及一种基于弹射器的事件调度方法及装置。包括:步骤1,初始化事件弹射器;步骤2,将用于实现自定义功能的事件注册到所述事件弹射器中;步骤3,由事件弹射器接收外部程序的事件调用请求,并通过事件调用请求中传递的事件名称查找并执行事件弹射器中的已经注册事件。总体而言,本发明所构思的以上技术方案与现有技术相比,能够利用事件弹射机制解决了javascript闭包间的通信问题,降低了javascript闭包间的耦合度,提升了代码的复用率和扩展性,降低了维护成本。
Description
技术领域
本发明涉及一种调度方法及装置,属于WEB信息处理领域,具体是涉及一种基于弹射器的事件调度方法及装置。
背景技术
在前端javascript开发领域,闭包的开发模式能促进功能的模块化,并且降低模块间的耦合性,避免全局污染。但是在闭包间的通信上,现有的开发模式往往需要明确到闭包所暴露的接口,导致闭包模块在协作方面产生极大的耦合、提升了功能的复杂度。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于弹射器的事件调度方法及装置,其目的在于,解决并优化前端开发中闭包间的通信所导致的闭包模块在协作方面产生极大的耦合、提升了功能复杂度的技术问题。
为了解决上述问题,根据本发明的一个方面,提供了一种基于弹射器的事件调度方法,包括:
步骤1,初始化事件弹射器;
步骤2,将用于实现自定义功能的事件注册到所述事件弹射器中;
步骤3,由事件弹射器接收外部程序的事件调用请求,并通过事件调用请求中传递的事件名称查找并执行事件弹射器中的已经注册事件。
优选的,上述的一种基于弹射器的事件调度方法,所述事件弹射器中包括:事件名称,以及与事件名称对应的事件函数堆栈,其中:事件函数堆栈是由事件构成的集合,并且事件函数堆栈按照事件的添加顺序从前往后顺序执行所包含的事件。
优选的,上述的一种基于弹射器的事件调度方法,所述事件弹射器接收事件调用请求中传递的扩展参数,并在执行所述事件时,将扩展参数传递至相应的事件。
优选的,上述的一种基于弹射器的事件调度方法,所述事件是javascript函数。
优选的,上述的一种基于弹射器的事件调度方法,所述事件弹射器采用单例与工厂的混合模式。
为了解决上述问题,根据本发明的另一个方面,提供了一种基于弹射器的事件调度装置,包括:
初始化模块,初始化事件弹射器;
注册模块,将用于实现自定义功能的事件注册到所述事件弹射器中;
调度模块,由事件弹射器接收外部程序的事件调用请求,并通过事件调用请求中传递的事件名称查找并执行事件弹射器中的已经注册事件。
优选的,上述的一种基于弹射器的事件调度装置,所述事件弹射器中包括:事件名称,以及与事件名称对应的事件函数堆栈,其中:事件函数堆栈是由事件构成的集合,并且事件函数堆栈按照事件的添加顺序从前往后顺序执行所包含的事件。
优选的,上述的一种基于弹射器的事件调度装置,所述事件弹射器接收事件调用请求中传递的扩展参数,并在执行所述事件时,将扩展参数传递至相应的事件。
优选的,上述的一种基于弹射器的事件调度装置,所述事件是javascript函数。
优选的,上述的一种基于弹射器的事件调度装置,所述事件弹射器采用单例与工厂的混合模式。
总体而言,本发明所构思的以上技术方案与现有技术相比,能够利用事件弹射机制解决了javascript 闭包间的通信问题,降低了javascript 闭包间的耦合度,提升了代码的复用率和扩展性,降低了维护成本。
附图说明
附图1是本发明的逻辑示意图。
附图2是本发明的事件执行时的逻辑示意图。
附图3是本发明的闭包与观察者的合作运行图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
为了解决上述问题,根据本发明的一个方面,提供了一种基于弹射器的事件调度方法,包括:
步骤1,初始化事件弹射器;
步骤2,将用于实现自定义功能的事件注册到所述事件弹射器中;
步骤3,由事件弹射器接收外部程序的事件调用请求,并通过事件调用请求中传递的事件名称查找并执行事件弹射器中的已经注册事件。
其中,所述事件弹射器中包括:事件名称,以及与事件名称对应的事件函数堆栈,其中:事件函数堆栈是由事件构成的集合,并且事件函数堆栈按照事件的添加顺序从前往后顺序执行所包含的事件。
其中,所述事件弹射器接收事件调用请求中传递的扩展参数,并在执行所述事件时,将扩展参数传递至相应的事件。
其中,所述事件是javascript函数,事件弹射器采用单例与工厂的混合模式。
为了解决上述问题,根据本发明的另一个方面,提供了一种基于弹射器的事件调度装置,包括:
初始化模块,初始化事件弹射器;
注册模块,将用于实现自定义功能的事件注册到所述事件弹射器中;
调度模块,由事件弹射器接收外部程序的事件调用请求,并通过事件调用请求中传递的事件名称查找并执行事件弹射器中的已经注册事件。
其中,所述事件弹射器中包括:事件名称,以及与事件名称对应的事件函数堆栈,其中:事件函数堆栈是由事件构成的集合,并且事件函数堆栈按照事件的添加顺序从前往后顺序执行所包含的事件。
其中,所述事件弹射器接收事件调用请求中传递的扩展参数,并在执行所述事件时,将扩展参数传递至相应的事件。
其中,所述事件是javascript函数,所述事件弹射器采用单例与工厂的混合模式。
实施例1
如图1所示,本实施例提供了一种前端观察者方式的事件调度逻辑图。图中,观察者的核心是一个“事件弹射器”,既事件集合。
事件表示功能单元,在javascript 中是一个函数。
事件弹射器本身既负责事件的录入和管理,同时也负责事件的获取和执行。
事件弹射器对应多个事件,事件在事件弹射器的表现形式为:事件名称、事件函数堆栈。事件函数堆栈的好处在于,同一个事件可以在执行效果上被叠加,便于观察者与实际场景解耦,需要注意的是堆栈是现进先出的原则,既按照添加顺序从前往后执行。
如图2所示,外部通过调用观察者,传入一个事件名称,观察者根据事件名称查找出事件堆栈并遍历执行。如果外部同时传入了扩展数据,扩展数据会在事件堆栈遍历执行的过程中传递给函数。
闭包与观察者的合作运行如图3所示。在观察者模式下,摒弃了闭包旧的开发模式(闭包直接关联),闭包只需要将事件在观察者上注册,可以在任何时间、任意地方随意调用。
观察者将闭包之间强行分隔开,闭包只需要提供规范的事件序列便可完成与其它闭包的协作。观察者本身不对规范做约束,全靠开发者自己约束。
为更加全面的支持开发场景,观察者采用:单例与工厂的混合模式,代码示例如下:
* 单例模式
* 全局默认监听者
window.Observer.on(…)
* 工厂模式
* 特定场景返回新的实例,方便定制
var myObserver = window.Observer.create();
myObserver.on(…)
本实施例描述的“观察者”利用事件弹射机制解决了javascript 闭包间的通信问题。降低了javascript 闭包间的耦合度,提升了代码的复用率和扩展性,降低了维护成本。
以上方法实施例和装置实施例是一一对应的,因此方法实施例的扩展方式亦可用于装置实施例。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (10)
1.一种基于弹射器的事件调度方法,其特征在于,包括:
步骤1,初始化事件弹射器;
步骤2,将用于实现自定义功能的事件注册到所述事件弹射器中;
步骤3,由事件弹射器接收外部程序的事件调用请求,并通过事件调用请求中传递的事件名称查找并执行事件弹射器中的已经注册事件。
2.根据权利要求1所述的一种基于弹射器的事件调度方法,其特征在于,所述事件弹射器中包括:事件名称,以及与事件名称对应的事件函数堆栈,其中:事件函数堆栈是由事件构成的集合,并且事件函数堆栈按照事件的添加顺序从前往后顺序执行所包含的事件。
3.根据权利要求1所述的一种基于弹射器的事件调度方法,其特征在于,所述事件弹射器接收事件调用请求中传递的扩展参数,并在执行所述事件时,将扩展参数传递至相应的事件。
4.根据权利要求1所述的一种基于弹射器的事件调度方法,其特征在于,所述事件是javascript函数。
5.根据权利要求1所述的一种基于弹射器的事件调度方法,其特征在于,所述事件弹射器采用单例与工厂的混合模式。
6.一种基于弹射器的事件调度装置,其特征在于,包括:
初始化模块,初始化事件弹射器;
注册模块,将用于实现自定义功能的事件注册到所述事件弹射器中;
调度模块,由事件弹射器接收外部程序的事件调用请求,并通过事件调用请求中传递的事件名称查找并执行事件弹射器中的已经注册事件。
7.根据权利要求6所述的一种基于弹射器的事件调度装置,其特征在于,所述事件弹射器中包括:事件名称,以及与事件名称对应的事件函数堆栈,其中:事件函数堆栈是由事件构成的集合,并且事件函数堆栈按照事件的添加顺序从前往后顺序执行所包含的事件。
8.根据权利要求6所述的一种基于弹射器的事件调度装置,其特征在于,所述事件弹射器接收事件调用请求中传递的扩展参数,并在执行所述事件时,将扩展参数传递至相应的事件。
9.根据权利要求6所述的一种基于弹射器的事件调度装置,其特征在于,所述事件是javascript函数。
10.根据权利要求6所述的一种基于弹射器的事件调度装置,其特征在于,所述事件弹射器采用单例与工厂的混合模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610464347.0A CN106126233A (zh) | 2016-06-24 | 2016-06-24 | 一种基于弹射器的事件调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610464347.0A CN106126233A (zh) | 2016-06-24 | 2016-06-24 | 一种基于弹射器的事件调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106126233A true CN106126233A (zh) | 2016-11-16 |
Family
ID=57268615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610464347.0A Pending CN106126233A (zh) | 2016-06-24 | 2016-06-24 | 一种基于弹射器的事件调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106126233A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636211A (zh) * | 2015-03-10 | 2015-05-20 | 中国农业银行股份有限公司 | 一种软件系统间的信息交互方法及中间件系统 |
CN105373548A (zh) * | 2014-08-25 | 2016-03-02 | 腾讯科技(深圳)有限公司 | 移动设备及其浏览器自定义事件的方法 |
US20160073216A1 (en) * | 2013-06-19 | 2016-03-10 | Twilio, Inc. | System and method for providing a communication endpoint information service |
CN105573756A (zh) * | 2015-12-15 | 2016-05-11 | 金蝶软件(中国)有限公司 | 一种脚本语言扩展方法及事件总线架构 |
-
2016
- 2016-06-24 CN CN201610464347.0A patent/CN106126233A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160073216A1 (en) * | 2013-06-19 | 2016-03-10 | Twilio, Inc. | System and method for providing a communication endpoint information service |
CN105373548A (zh) * | 2014-08-25 | 2016-03-02 | 腾讯科技(深圳)有限公司 | 移动设备及其浏览器自定义事件的方法 |
CN104636211A (zh) * | 2015-03-10 | 2015-05-20 | 中国农业银行股份有限公司 | 一种软件系统间的信息交互方法及中间件系统 |
CN105573756A (zh) * | 2015-12-15 | 2016-05-11 | 金蝶软件(中国)有限公司 | 一种脚本语言扩展方法及事件总线架构 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100583783C (zh) | 基于配置策略的电信领域遗留系统集成工具 | |
CN103135966B (zh) | 基于xfs标准的sp实现方法及sp架构 | |
WO2008045656A3 (en) | Upgrading mesh access points in a wireless mesh network | |
ATE394001T1 (de) | System und verfahren zum asynchronen kommunizieren mit web-diensten unter verwendung von nachrichtensatzdefinitionen | |
CN101335648A (zh) | 一种不同接口报文间的自动转换方法及其装置 | |
WO2008035048A3 (en) | Handling information | |
CN105159667B (zh) | 一种web service接口调用参数转换方法及系统 | |
CN109995588A (zh) | 一种灵活以太网链路管理方法及系统 | |
CN109729025A (zh) | 一种处理灵活以太网的数据的方法及相关设备 | |
DE60326460D1 (de) | Kommunizieren in sprach-und datenkommunikationssystemen | |
CN106126233A (zh) | 一种基于弹射器的事件调度方法及装置 | |
SG11201906705TA (en) | Method for acquiring user information and relevant device | |
CN101202733B (zh) | 基于事件分发的通信系统 | |
CN101365191A (zh) | 实现多用户同时在线的方法及终端 | |
CN102932761B (zh) | 基于手机名片的来电联系信息显示处理方法 | |
GB0011225D0 (en) | Charging for VAS resource usage in a communications infrastructure | |
CN103164199B (zh) | 基于分层结构的应用模型生成装置及方法 | |
CN105144764B (zh) | 一种信息获取方法及设备 | |
CN109669793A (zh) | 中间件进程内对象调用方法 | |
CN103886772A (zh) | 在即时通信中显示报站信息的方法和系统 | |
CN103150162B (zh) | 提高嵌入式软件代码共享程度的方法 | |
CN104486408B (zh) | 一种分布式舞台多模协同控制系统 | |
CN103475686B (zh) | 用于电力仿真的通信数据分发系统及通信数据分发方法 | |
CN104363184B (zh) | 一种基于tuxedo通信模式的JSON报文处理方法及系统 | |
CN106789212A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161116 |
|
RJ01 | Rejection of invention patent application after publication |