CN106126233A - 一种基于弹射器的事件调度方法及装置 - Google Patents

一种基于弹射器的事件调度方法及装置 Download PDF

Info

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
Application number
CN201610464347.0A
Other languages
English (en)
Inventor
杜伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201610464347.0A priority Critical patent/CN106126233A/zh
Publication of CN106126233A publication Critical patent/CN106126233A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural

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所述的一种基于弹射器的事件调度装置,其特征在于,所述事件弹射器采用单例与工厂的混合模式。
CN201610464347.0A 2016-06-24 2016-06-24 一种基于弹射器的事件调度方法及装置 Pending CN106126233A (zh)

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)

* Cited by examiner, † Cited by third party
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 金蝶软件(中国)有限公司 一种脚本语言扩展方法及事件总线架构

Patent Citations (4)

* Cited by examiner, † Cited by third party
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