CN115794444A - 事件通信方法、装置、计算机设备和计算机可读存储介质 - Google Patents
事件通信方法、装置、计算机设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN115794444A CN115794444A CN202310051771.2A CN202310051771A CN115794444A CN 115794444 A CN115794444 A CN 115794444A CN 202310051771 A CN202310051771 A CN 202310051771A CN 115794444 A CN115794444 A CN 115794444A
- Authority
- CN
- China
- Prior art keywords
- event
- target
- target event
- current page
- processing result
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种事件通信方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:响应于对当前页面的事件触发操作,通过所述当前页面的根节点,将所述事件触发操作对应的目标事件转发至控制器,并订阅所述目标事件对应的事件标识;根据所述事件标识,获取所述目标事件的事件处理结果;所述事件处理结果为通过所述控制器对所述目标事件进行处理得到的;结束对所述目标事件的事件通信,并取消订阅所述目标事件对应的事件标识。采用本方法能够提高事件通信效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种事件通信方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
背景技术
在软件开发技术领域中,主要通过前端框架进行事件通信,使用前端框架能够有效提高软件的健壮性。
然而,前端框架的事件通信功能仅能在自身框架中运行,无法进行跨框架的事件通信,导致前端框架实现事件通信时的限制较多,影响了事件通信效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够将事件通信与前端框架解耦,从而提高事件通信效率的事件通信方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种事件通信方法。所述方法包括:
响应于对当前页面的事件触发操作,通过所述当前页面的根节点,将所述事件触发操作对应的目标事件转发至控制器,并订阅所述目标事件对应的事件标识;
根据所述事件标识,获取所述目标事件的事件处理结果;所述事件处理结果为通过所述控制器对所述目标事件进行处理得到的;
结束对所述目标事件的事件通信,并取消订阅所述目标事件对应的事件标识。
在其中一个实施例中,在通过所述当前页面的根节点,将所述事件触发操作对应的目标事件转发至控制器之前,还包括:
确定所述当前页面所挂载的父节点,并调用事件处理函数将所述事件触发操作对应的目标事件发送至所述父节点;
根据所述父节点的树状结构,将所述目标事件提交至所述当前页面的所述根节点。
在其中一个实施例中,事件处理结果通过如下方式处理得到:
通过所述控制器,对所述目标事件进行事件类型识别,得到所述目标事件的事件类型;
对所述目标事件进行状态栈转换,得到所述目标事件的数据状态;
通过所述控制器,对所述事件类型对应的上下文对象进行初始化处理,得到初始化后的上下文对象;
调用所述初始化后的上下文对象中的状态函数,对所述数据状态进行处理,得到所述目标事件的事件处理结果。
在其中一个实施例中,通过所述控制器,对所述事件类型对应的上下文对象进行初始化处理,得到初始化后的上下文对象,包括:
在检测到所述目标事件为所述当前页面的首次触发事件的情况下,将所述事件类型对应的上下文对象连接至事件通信框架,得到连接后的上下文对象;
调用初始化上下文函数,对所述连接后的上下文对象进行初始化处理,得到初始化后的上下文对象。
在其中一个实施例中,调用所述初始化后的上下文对象中的状态函数,对所述数据状态进行处理,得到所述目标事件的事件处理结果,包括:
根据所述目标事件的事件逻辑,调用切换状态栈函数、回到上一状态函数和获取下一状态函数,对所述数据状态进行数据状态切换,得到所述数据状态的多个切换后数据状态;
依次对所述多个切换后数据状态进行处理,得到所述目标事件的事件处理结果。
在其中一个实施例中,在调用所述初始化后的上下文对象中的状态函数,对所述数据状态进行处理,得到所述目标事件的事件处理结果之后,还包括:
调用数据变更事件,将所述事件处理结果广播至所述当前页面。
在其中一个实施例中,订阅所述目标事件对应的事件标识,根据所述事件标识,获取所述目标事件的事件处理结果,包括:
通过数据变更监听器,对所述目标事件对应的事件标识进行订阅处理,得到订阅后的数据变更监听器;
通过所述订阅后的数据变更监听器,监听并接收携带所述目标事件的事件处理结果。
第二方面,本申请还提供了一种事件通信装置。所述装置包括:
事件转发单元,用于响应于对当前页面的事件触发操作,通过所述当前页面的根节点,将所述事件触发操作对应的目标事件转发至控制器,并订阅所述目标事件对应的事件标识;
结果获取单元,用于根据所述事件标识,获取所述目标事件的事件处理结果;所述事件处理结果为通过所述控制器对所述目标事件进行处理得到的;
通信结束单元,用于结束对所述目标事件的事件通信,并取消订阅所述目标事件对应的事件标识。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
响应于对当前页面的事件触发操作,通过所述当前页面的根节点,将所述事件触发操作对应的目标事件转发至控制器,并订阅所述目标事件对应的事件标识;
根据所述事件标识,获取所述目标事件的事件处理结果;所述事件处理结果为通过所述控制器对所述目标事件进行处理得到的;
结束对所述目标事件的事件通信,并取消订阅所述目标事件对应的事件标识。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
响应于对当前页面的事件触发操作,通过所述当前页面的根节点,将所述事件触发操作对应的目标事件转发至控制器,并订阅所述目标事件对应的事件标识;
根据所述事件标识,获取所述目标事件的事件处理结果;所述事件处理结果为通过所述控制器对所述目标事件进行处理得到的;
结束对所述目标事件的事件通信,并取消订阅所述目标事件对应的事件标识。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
响应于对当前页面的事件触发操作,通过所述当前页面的根节点,将所述事件触发操作对应的目标事件转发至控制器,并订阅所述目标事件对应的事件标识;
根据所述事件标识,获取所述目标事件的事件处理结果;所述事件处理结果为通过所述控制器对所述目标事件进行处理得到的;
结束对所述目标事件的事件通信,并取消订阅所述目标事件对应的事件标识。
上述事件通信方法、装置、计算机设备、存储介质和计算机程序产品,响应于对当前页面的事件触发操作,通过当前页面的根节点,将事件触发操作对应的目标事件转发至控制器,并订阅目标事件对应的事件标识;根据事件标识,获取目标事件的事件处理结果;事件处理结果为通过控制器对目标事件进行处理得到的;结束对目标事件的事件通信,并取消订阅目标事件对应的事件标识。采用本方法,能够将事件通信与前端框架解耦,通过目标事件的转发机制和订阅事件标识实现事件通信,而无需依赖任何第三方前端框架,从而提高了事件通信效率。
附图说明
图1为一个实施例中事件通信方法的应用环境图;
图2为一个实施例中事件通信方法的流程示意图;
图3为一个实施例中处理得到事件处理结果步骤的流程示意图;
图4为另一个实施例中事件通信方法的流程示意图;
图5为一个实施例中事件通信方法的时序图;
图6为一个实施例中事件通信装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的事件通信方法,可以应用于如图1所示的事件通信框架中。其中,当前页面101、根节点102、控制器和103通过网络相互进行通信。其中,当前页面101上还可以部署有组件104,组件104包括但不限于是页面组件和功能组件。控制器103为服务器中部署的能够处理事件和数据状态的模块,控制器可以是通信框架中的Controller。通过计算机设备中的处理器105,控制当前页面101、根节点102、控制器103和组件104的正常执行。
在一个实施例中,如图2所示,提供了一种事件通信方法,以该方法应用于图1中的组件为例进行说明,该方法当然还可以应用于图1中的当前页面,包括以下步骤:
步骤S201,响应于对当前页面的事件触发操作,通过当前页面的根节点,将事件触发操作对应的目标事件转发至控制器,并订阅目标事件对应的事件标识。
其中,当前页面是指接收到事件触发操作的页面。
具体地,用户对当前页面或组件进行事件触发操作,当前页面或组件根据其树状结构,对事件触发操作对应的目标事件进行向上提交,进而树状结构的根节点接收到目标事件;处理器通过该根节点,将接收到的目标事件转发至控制器。同时,当前页面或组件订阅该目标事件对应的事件标识,以便在目标事件的相关数据更新时及时获取其更新的数据。
步骤S202,根据事件标识,获取目标事件的事件处理结果;事件处理结果为通过控制器对目标事件进行处理得到的。
其中,事件标识是指目标事件的标识信息。例如,事件标识可以是目标事件的编码。
具体地,在上述步骤S201订阅目标事件对应的事件标识之后,通过数据变更监听器对目标事件的相关数据进行监听,在监听到目标事件的相关数据更新时,如监听到目标事件的事件处理结果时,当前页面或组件可以通过事件标识获取到目标事件的事件处理结果。
步骤S203,结束对目标事件的事件通信,并取消订阅目标事件对应的事件标识。
具体地,在上述步骤S202获取到目标事件的事件处理结果之后,当前页面或组件完成了对目标事件的事件通信;进而当前页面或组件可以取消订阅目标事件对应的事件标识,避免后续继续接收到目标事件的相关更新数据,从而减轻了对事件通信的资源消耗,提高了事件通信的处理效率。
上述事件通信方法中,响应于对当前页面的事件触发操作,通过当前页面的根节点,将事件触发操作对应的目标事件转发至控制器,并订阅目标事件对应的事件标识;根据事件标识,获取目标事件的事件处理结果;事件处理结果为通过控制器对目标事件进行处理得到的;结束对目标事件的事件通信,并取消订阅目标事件对应的事件标识。采用本方法,能够将事件通信与前端框架解耦,通过目标事件的转发机制和订阅事件标识实现事件通信,而无需依赖任何第三方前端框架,从而提高了事件通信效率。
在一个实施例中,在步骤S201,通过当前页面的根节点,将事件触发操作对应的目标事件转发至控制器之前,还包括:确定当前页面所挂载的父节点,并调用事件处理函数将事件触发操作对应的目标事件发送至父节点;根据父节点的树状结构,将目标事件提交至当前页面的根节点。
其中,事件处理函数可以是javascript开发中的HandelEvent函数。根节点可以是软件前端领域中页面的RootView;RootView是指用于放置当前页面的所有视图的视图。
具体地,确定出当前页面所挂载的父节点。当前页面或组件对基本视图进行继承处理,得到当前页面或组件的事件处理函数;其中,基本视图可以是javascript开发中的BaseView抽象类。进而通过控制组件调用事件处理函数,将事件触发操作对应的目标事件发送至父节点;根据父节点的树状结构,并调用事件处理函数,对事件触发操作对应的目标事件进行向上提交处理,直至当前页面的根节点捕获到目标事件。进而可以执行上述步骤S201,通过当前页面的根节点,将事件触发操作对应的目标事件转发至控制器。
本实施例中,通过确定当前页面所挂载的父节点,并调用事件处理函数将事件触发操作对应的目标事件发送至父节点;进而根据父节点的树状结构,将目标事件提交至当前页面的根节点,通过javascript技术实现了目标事件在前端中的通信,而无需依赖任何第三方前端框架,使其还能够应用在跨框架通信场景中,从而拓展了事件通信的应用面。
在一个实施例中,如图3所示,上述步骤S202中的事件处理结果还可以通过如下方式处理得到:
步骤S301,通过控制器,对目标事件进行事件类型识别,得到目标事件的事件类型。
步骤S302,对目标事件进行状态栈转换,得到目标事件的数据状态。
具体地,通过控制器对目标事件进行事件类型识别,得到目标事件的事件类型;通过控制器对目标事件进行状态栈转换,可以是对目标事件的数据进行状态栈转换,则控制器得到目标事件的数据状态。进一步地,还可以通过控制器处理事件处理函数的分发,以及对目标事件的相关参数进行参数预处理和数据校验,例如,可以是对目标事件的相关参数进行权限处理、链式事件调用和数据组装处理。
步骤S303,通过控制器,对事件类型对应的上下文对象进行初始化处理,得到初始化后的上下文对象。
步骤S304,调用初始化后的上下文对象中的状态函数,对数据状态进行处理,得到目标事件的事件处理结果。
其中,上下文对象是指javascript运行环境中的Context;其中上下文对象由javascript开发中的执行引擎创建得到。可以理解的是,本实施例中的上下文对象是前端领域javascript运行环境中用于执行事件通信的对象模块,与语义识别领域中的上下文的文本对象不同。
具体地,在获取到目标事件的事件类型之后,通过控制器获取该事件类型对应的上下文对象和数据源,进而对该上下文对象和数据源进行初始化处理,得到初始化后的上下文对象和初始化后的数据源。通过初始化后的上下文对象调用一个或多个状态函数,对目标事件的数据状态依次进行处理,得到目标事件的事件处理结果。其中,数据源,即DataSource,是一种数据交互接口;数据源用于在目标事件处理过程中提供数据库的连接。
在本实施例中,对目标事件进行状态栈转换,得到目标事件的数据状态;在对目标事件的事件类型对应的上下文对象进行初始化处理之后,调用该初始化后的上下文对象中的状态函数,对数据状态进行处理,得到目标事件的事件处理结果,实现了对目标事件的处理,此外,通过对目标事件进行状态栈转换,并通过状态函数对目标事件的数据状态进行处理,能够将原来复杂的逻辑处理简单化,大大简化了目标事件的处理过程,从而提高了事件通信的处理效率和通信效率。
在一个实施例中,上述步骤S303,通过控制器,对事件类型对应的上下文对象进行初始化处理,得到初始化后的上下文对象,具体包括如下内容:在检测到目标事件为当前页面的首次触发事件的情况下,将事件类型对应的上下文对象连接至事件通信框架,得到连接后的上下文对象;调用初始化上下文函数,对连接后的上下文对象进行初始化处理,得到初始化后的上下文对象。
其中,初始化上下文函数可以是javascript开发中的InitContext函数。
具体地,若检测到目标事件为当前页面的首次触发事件,则此时用于处理目标事件的上下文对象和处理目标事件过程中所需的数据源还未被初始化,此时,可以通过控制器将事件类型对应的上下文对象和数据源连接至事件通信框架,得到连接后的上下文对象和连接后的数据源;调用初始化上下文函数,对连接后的上下文对象进行初始化处理,得到初始化后的上下文对象;调用初始化数据源函数,对连接后的数据源进行初始化处理,得到初始化后的数据源。其中,初始化数据源函数可以是javascript开发中的InitDataSource函数。
在实际应用中,还可以根据目标事件的实际处理需要,对其他所需的框架或者库进行连接和初始化处理。
在本实施例中,通过将事件类型对应的上下文对象和数据源连接至事件通信框架,得到连接后的上下文对象和连接后的数据源;调用初始化上下文函数,对连接后的上下文对象和连接后的数据源进行初始化处理,得到初始化后的上下文对象和初始化后的数据源,实现了目标事件的事件类型对应的上下文对象和数据源的连接和初始化处理,以便在后续步骤中,通过初始化后的上下文对象和初始化后的数据源来处理目标事件的数据状态。
在一个实施例中,上述步骤S304,调用初始化后的上下文对象中的状态函数,对数据状态进行处理,得到目标事件的事件处理结果,具体包括如下内容:根据目标事件的事件逻辑,调用切换状态栈函数、回到上一状态函数和获取下一状态函数,对数据状态进行数据状态切换,得到数据状态的多个切换后数据状态;依次对多个切换后数据状态进行处理,得到目标事件的事件处理结果。
具体地,通过初始化后的上下文对象调用一个或多个状态函数对数据状态进行处理,可以是按照目标事件的事件逻辑,从状态函数中选择切换状态栈函数、回到上一状态函数和/或获取下一状态函数进行调用,通过调用的函数对数据状态进行数据状态切换,得到对应的多个切换后数据状态;通过初始化后的上下文对象依次对各个切换后数据状态进行处理,得到目标事件的事件处理结果。
其中,状态函数包括但不限于是调用切换状态栈函数、回到上一状态函数和获取下一状态函数。其中,调用切换状态栈函数可以是javascript开发中的SwitchState函数;回到上一状态函数可以是javascript开发中的StateGoBack函数;获取下一状态函数可以是javascript开发中的GetNextStateScene函数。
在本实施例中,通过根据目标事件的事件逻辑,调用切换状态栈函数、回到上一状态函数和获取下一状态函数,对数据状态进行数据状态切换,得到数据状态的多个切换后数据状态;依次对多个切换后数据状态进行处理,得到目标事件的事件处理结果,通过状态函数实现了对目标事件的数据状态的处理,不仅能够借助状态函数能够将原来复杂的逻辑简单化的优点,大大简化了目标事件的处理过程,提高了事件通信的处理效率和通信效率,还能够确保处理过程中不会丢失任何数据状态,提高了事件通信的准确性。
在一个实施例中,在步骤S304,调用初始化后的上下文对象中的状态函数,对数据状态进行处理,得到目标事件的事件处理结果之后,还包括:调用数据变更事件,将事件处理结果广播至当前页面。
其中,数据变更事件可以是javascript开发中的HandleDataChange事件。
具体地,在得到事件处理结果之后,还可以调用数据变更事件,对事件处理结果进行事件响应广播,以向所有订阅目标事件对应的事件标识的页面或组件广播该事件处理结果,进而当前页面或组件接收到事件处理结果。
在本实施例中,通过调用数据变更事件,将事件处理结果广播至当前页面,在确保了事件通信机制完整的同时,还提高了对所有订阅目标事件对应的事件标识的页面或组件的事件响应效率。
在一个实施例中,上述步骤S201,订阅目标事件对应的事件标识;上述步骤S202,根据事件标识,获取目标事件的事件处理结果,具体包括如下内容:通过数据变更监听器,对目标事件对应的事件标识进行订阅处理,得到订阅后的数据变更监听器;通过订阅后的数据变更监听器,监听并接收目标事件的事件处理结果。
其中,数据变更监听器可以是javascript开发中的AddDataChangeListener函数。
具体地,当前页面或组件通过数据变更监听器,对目标事件对应的事件标识进行订阅处理,得到订阅后的数据变更监听器;通过订阅后的数据变更监听器,对目标事件进行监听;当订阅后的数据变更监听器监听到目标事件的事件处理结果时,当前页面或组件获取到广播的事件处理结果。当前页面或组件获取到事件处理结果之后,可以结束对目标事件的事件通信,进而当前页面或组件调用取消数据变更监听器对目标事件对应的事件标识进行取消订阅处理。其中,取消数据变更监听器可以是javascript开发中的removeDataChangeListener函数;removeDataChangeListener函数可以由挂载在上下文对象下的订阅模块提供。
在实际应用中,订阅模块(BaseModel)用于提供数据变更事件(例如HandleDataChange事件)、数据变更监听器(例如AddDataChangeListener函数)和取消数据变更监听器(例如removeDataChangeListener函数),进而当前页面或组件可以调用订阅模块提供的andleDataChange事件、AddDataChangeListener函数和removeDataChangeListener函数来实现事件通信的发布和订阅功能。此外,订阅模块(BaseModel)还可以挂载在上下文对象(Context)下,以便在发生数据变更时(例如处理得到目标事件的事件处理结果)能够及时监听到。
在本实施例中,通过数据变更监听器订阅目标事件对应的事件标识,能够通过数据变更监听器主动监听和获取目标事件处理得到的事件处理结果,而无需当前页面或组件频繁向控制器和上下文对象发起事件处理结果的询问,提高了事件通信的处理效率。
在一个实施例中,如图4所示,提供了另一种事件通信方法,以该方法应用于图1中的组件为例进行说明,包括以下步骤:
步骤S401,确定当前页面所挂载的父节点,并调用事件处理函数将事件触发操作对应的目标事件发送至父节点。
步骤S402,根据父节点的树状结构,将目标事件提交至当前页面的根节点。
步骤S403,响应于对当前页面的事件触发操作,通过当前页面的根节点,将事件触发操作对应的目标事件转发至控制器;控制器用于对目标事件进行处理得到事件处理结果。
步骤S404,通过数据变更监听器,对目标事件对应的事件标识进行订阅处理,得到订阅后的数据变更监听器。
步骤S405,通过订阅后的数据变更监听器,监听并接收携带目标事件的事件处理结果。
步骤S406,结束对目标事件的事件通信,并取消订阅目标事件对应的事件标识。
上述事件通信方法,能够实现以下有益效果:能够将事件通信与前端框架解耦,通过目标事件的转发机制和订阅事件标识实现事件通信,而无需依赖任何第三方前端框架,从而提高了事件通信效率。
为了更清晰阐明本公开实施例提供的事件通信方法,以下以一个具体的实施例对上述事件通信方法进行具体说明。提供了又一种事件通信方法,图5为事件通信方法的时序图,如图5所示,具体包括如下内容:
步骤S501,用户在当前页面上触发目标事件。
步骤S502,当前页面或当前页面中的组件通过继承BaseView视图获取HandelEvent函数,进而当前页面或当前页面通过HandleEvent函数向父节点抛出目标事件,并订阅目标事件的事件标识。
步骤S503,父节点根据树状结构,将目标事件逐步转发至根节点,进而根节点将接收到的目标事件转发至控制器(标记为Controller)。
步骤S504,Controller识别得到目标事件的事件类型,并对目标事件的事件参数进行处理。
步骤S505,Controller对事件类型对应的上下文对象(标记为Context)进行初始化处理,得到初始化后的上下文对象;调用初始化后的上下文对象中装载的状态函数(StateModel)对目标事件的数据状态进行处理。
步骤S506,初始化后的上下文对象中的StateModel处理完成后,得到目标事件的事件处理结果。
步骤S507,初始化后的上下文对象调用数据变更事件(HandleDataChange)向当前页面或组件广播返回事件处理结果;当前页面或组件通过订阅的事件标识获取到事件处理结果。
步骤S508,目标事件的事件通信结束,当前页面或组件取消订阅目标事件的事件标识。
在本实施例中,一方面,通过javascript技术实现了目标事件在前端中的通信,而无需依赖任何第三方前端框架,实现了事件通信与前端框架的解耦,使其还能够应用在跨框架通信场景中,从而拓展了事件通信的应用面;另一方面,通过状态函数实现了对目标事件的数据状态的处理,不仅能够借助状态函数能够将原来复杂的逻辑简单化的优点,大大简化了目标事件的处理过程,提高了事件通信的处理效率和通信效率,还能够确保处理过程中不会丢失任何数据状态,提高了事件通信的准确性。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的事件通信方法的事件通信装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个事件通信装置实施例中的具体限定可以参见上文中对于事件通信方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种事件通信装置600,包括:事件转发单元601、结果获取单元602和通信结束单元603,其中:
事件转发单元601,用于响应于对当前页面的事件触发操作,通过当前页面的根节点,将事件触发操作对应的目标事件转发至控制器,并订阅目标事件对应的事件标识。
结果获取单元602,用于根据事件标识,获取目标事件的事件处理结果;事件处理结果为通过控制器对目标事件进行处理得到的。
通信结束单元603,用于结束对目标事件的事件通信,并取消订阅目标事件对应的事件标识。
在一个实施例中,事件通信装置600还包括事件提交单元,用于确定当前页面所挂载的父节点,并调用事件处理函数将事件触发操作对应的目标事件发送至父节点;根据父节点的树状结构,将目标事件提交至当前页面的根节点。
在一个实施例中,事件通信装置600还包括结果处理单元,用于通过控制器,对目标事件进行事件类型识别,得到目标事件的事件类型;对目标事件进行状态栈转换,得到目标事件的数据状态;通过控制器,对事件类型对应的上下文对象进行初始化处理,得到初始化后的上下文对象;调用初始化后的上下文对象中的状态函数,对数据状态进行处理,得到目标事件的事件处理结果。
在一个实施例中,事件通信装置600还包括初始化单元,用于在检测到目标事件为当前页面的首次触发事件的情况下,将事件类型对应的上下文对象连接至事件通信框架,得到连接后的上下文对象;调用初始化上下文函数,对连接后的上下文对象进行初始化处理,得到初始化后的上下文对象。
在一个实施例中,事件通信装置600还包括事件处理单元,用于根据目标事件的事件逻辑,调用切换状态栈函数、回到上一状态函数和获取下一状态函数,对数据状态进行数据状态切换,得到数据状态的多个切换后数据状态;依次对多个切换后数据状态进行处理,得到目标事件的事件处理结果。
在一个实施例中,事件通信装置600还包括事件广播单元,用于调用数据变更事件,将事件处理结果广播至当前页面。
在一个实施例中,结果获取单元602,还用于通过数据变更监听器,对目标事件对应的事件标识进行订阅处理,得到订阅后的数据变更监听器;通过订阅后的数据变更监听器,监听并接收携带目标事件的事件处理结果。
上述事件通信装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储目标事件、事件标识和事件处理结果等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种事件通信方法。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random AccessMemory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种事件通信方法,其特征在于,所述方法包括:
响应于对当前页面的事件触发操作,通过所述当前页面的根节点,将所述事件触发操作对应的目标事件转发至控制器,并订阅所述目标事件对应的事件标识;
根据所述事件标识,获取所述目标事件的事件处理结果;所述事件处理结果为通过所述控制器对所述目标事件进行处理得到的;
结束对所述目标事件的事件通信,并取消订阅所述目标事件对应的事件标识。
2.根据权利要求1所述的方法,其特征在于,在通过所述当前页面的根节点,将所述事件触发操作对应的目标事件转发至控制器之前,还包括:
确定所述当前页面所挂载的父节点,并调用事件处理函数将所述事件触发操作对应的目标事件发送至所述父节点;
根据所述父节点的树状结构,将所述目标事件提交至所述当前页面的所述根节点。
3.根据权利要求1所述的方法,其特征在于,所述事件处理结果通过如下方式处理得到:
通过所述控制器,对所述目标事件进行事件类型识别,得到所述目标事件的事件类型;
对所述目标事件进行状态栈转换,得到所述目标事件的数据状态;
通过所述控制器,对所述事件类型对应的上下文对象进行初始化处理,得到初始化后的上下文对象;
调用所述初始化后的上下文对象中的状态函数,对所述数据状态进行处理,得到所述目标事件的事件处理结果。
4.根据权利要求3所述的方法,其特征在于,所述通过所述控制器,对所述事件类型对应的上下文对象进行初始化处理,得到初始化后的上下文对象,包括:
在检测到所述目标事件为所述当前页面的首次触发事件的情况下,将所述事件类型对应的上下文对象连接至事件通信框架,得到连接后的上下文对象;
调用初始化上下文函数,对所述连接后的上下文对象进行初始化处理,得到初始化后的上下文对象。
5.根据权利要求3所述的方法,其特征在于,所述调用所述初始化后的上下文对象中的状态函数,对所述数据状态进行处理,得到所述目标事件的事件处理结果,包括:
根据所述目标事件的事件逻辑,调用切换状态栈函数、回到上一状态函数和获取下一状态函数,对所述数据状态进行数据状态切换,得到所述数据状态的多个切换后数据状态;
依次对所述多个切换后数据状态进行处理,得到所述目标事件的事件处理结果。
6.根据权利要求3所述的方法,其特征在于,在调用所述初始化后的上下文对象中的状态函数,对所述数据状态进行处理,得到所述目标事件的事件处理结果之后,还包括:
调用数据变更事件,将所述事件处理结果广播至所述当前页面。
7.根据权利要求1所述的方法,其特征在于,所述订阅所述目标事件对应的事件标识,根据所述事件标识,获取所述目标事件的事件处理结果,包括:
通过数据变更监听器,对所述目标事件对应的事件标识进行订阅处理,得到订阅后的数据变更监听器;
通过所述订阅后的数据变更监听器,监听并接收携带所述目标事件的事件处理结果。
8.一种事件通信装置,其特征在于,所述装置包括:
事件转发单元,用于响应于对当前页面的事件触发操作,通过所述当前页面的根节点,将所述事件触发操作对应的目标事件转发至控制器,并订阅所述目标事件对应的事件标识;
结果获取单元,用于根据所述事件标识,获取所述目标事件的事件处理结果;所述事件处理结果为通过所述控制器对所述目标事件进行处理得到的;
通信结束单元,用于结束对所述目标事件的事件通信,并取消订阅所述目标事件对应的事件标识。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310051771.2A CN115794444B (zh) | 2023-02-02 | 2023-02-02 | 事件通信方法、装置、计算机设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310051771.2A CN115794444B (zh) | 2023-02-02 | 2023-02-02 | 事件通信方法、装置、计算机设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115794444A true CN115794444A (zh) | 2023-03-14 |
CN115794444B CN115794444B (zh) | 2023-05-16 |
Family
ID=85429480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310051771.2A Active CN115794444B (zh) | 2023-02-02 | 2023-02-02 | 事件通信方法、装置、计算机设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794444B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904739A (zh) * | 2011-07-27 | 2013-01-30 | 华为技术有限公司 | 一种实现事件转发的方法及通用信息模型cim服务器 |
CN109981161A (zh) * | 2019-03-13 | 2019-07-05 | 南京邮电大学 | 一种基于发布订阅的多无人机通信模式的设计方法 |
CN110119336A (zh) * | 2019-04-04 | 2019-08-13 | 微民保险代理有限公司 | 数据处理方法、装置、计算机可读存储介质和计算机设备 |
CN110263282A (zh) * | 2019-06-19 | 2019-09-20 | 南京邮电大学 | 一种基于Kafka的内容发布订阅通信模式的设计方法 |
CN110445637A (zh) * | 2019-07-05 | 2019-11-12 | 深圳壹账通智能科技有限公司 | 事件监控方法、系统、计算机设备和存储介质 |
CN111309406A (zh) * | 2020-02-17 | 2020-06-19 | 北京字节跳动网络技术有限公司 | 应用程序的事件处理方法、装置及电子设备 |
CN111353306A (zh) * | 2020-02-22 | 2020-06-30 | 杭州电子科技大学 | 基于实体关系和依存Tree-LSTM的联合事件抽取的方法 |
CN111737023A (zh) * | 2020-05-14 | 2020-10-02 | 重庆长安汽车股份有限公司 | 一种车载事件处理方法、云服务器及计算机可读存储介质 |
WO2021116739A1 (en) * | 2019-12-13 | 2021-06-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Event notifications targeting any user in a specified target area |
CN113938522A (zh) * | 2021-10-12 | 2022-01-14 | 中国联合网络通信集团有限公司 | 事件消息传输方法、系统、设备和计算机存储介质 |
-
2023
- 2023-02-02 CN CN202310051771.2A patent/CN115794444B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904739A (zh) * | 2011-07-27 | 2013-01-30 | 华为技术有限公司 | 一种实现事件转发的方法及通用信息模型cim服务器 |
CN109981161A (zh) * | 2019-03-13 | 2019-07-05 | 南京邮电大学 | 一种基于发布订阅的多无人机通信模式的设计方法 |
CN110119336A (zh) * | 2019-04-04 | 2019-08-13 | 微民保险代理有限公司 | 数据处理方法、装置、计算机可读存储介质和计算机设备 |
CN110263282A (zh) * | 2019-06-19 | 2019-09-20 | 南京邮电大学 | 一种基于Kafka的内容发布订阅通信模式的设计方法 |
CN110445637A (zh) * | 2019-07-05 | 2019-11-12 | 深圳壹账通智能科技有限公司 | 事件监控方法、系统、计算机设备和存储介质 |
WO2021116739A1 (en) * | 2019-12-13 | 2021-06-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Event notifications targeting any user in a specified target area |
CN111309406A (zh) * | 2020-02-17 | 2020-06-19 | 北京字节跳动网络技术有限公司 | 应用程序的事件处理方法、装置及电子设备 |
CN111353306A (zh) * | 2020-02-22 | 2020-06-30 | 杭州电子科技大学 | 基于实体关系和依存Tree-LSTM的联合事件抽取的方法 |
CN111737023A (zh) * | 2020-05-14 | 2020-10-02 | 重庆长安汽车股份有限公司 | 一种车载事件处理方法、云服务器及计算机可读存储介质 |
CN113938522A (zh) * | 2021-10-12 | 2022-01-14 | 中国联合网络通信集团有限公司 | 事件消息传输方法、系统、设备和计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
张明: ""基于发布/订阅模式的通信网关系统研究及开发"" * |
Also Published As
Publication number | Publication date |
---|---|
CN115794444B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110471780B (zh) | 分布式事件处理装置、终端和计算机存储介质 | |
CN108132832B (zh) | 应用程序启动方法和装置 | |
CN110764814A (zh) | 数据源动态配置方法、装置、计算机设备和存储介质 | |
CN113918437A (zh) | 用户行为数据分析方法、装置、计算机设备和存储介质 | |
CN113067853A (zh) | 一种数据推送方法、装置、电子设备及存储介质 | |
CN115794444B (zh) | 事件通信方法、装置、计算机设备和计算机可读存储介质 | |
CN116488986A (zh) | 基于事件驱动的消息触达方法、系统及装置、存储介质 | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN114564286A (zh) | 一种规则引擎告警方法及规则引擎告警系统 | |
CN108052380B (zh) | 业务功能对接方法、装置、计算机设备及存储介质 | |
CN110162542B (zh) | 基于cassandra的数据翻页方法、装置、计算机设备和存储介质 | |
US20150379548A1 (en) | Method and System for Data Processing | |
US9536222B2 (en) | Progress information in a service-oriented architecture | |
CN105335470A (zh) | 用户登录信息展现方法和装置 | |
CN110598155A (zh) | 一种Ajax请求调用方法、装置、计算机设备及存储介质 | |
CN116258523B (zh) | 媒介信息归因方法、装置、计算机设备和存储介质 | |
CN117221830A (zh) | 消息播报方法、装置、设备、存储介质和程序产品 | |
CN117172839A (zh) | 资源数据处理方法、装置、计算机设备和存储介质 | |
CN116366724A (zh) | 业务流程的处理方法、装置、计算机设备、存储介质 | |
CN117082076A (zh) | 批量消息处理方法、装置、计算机设备和存储介质 | |
CN116820558A (zh) | 应用程序开发方法、装置、设备、存储介质和程序产品 | |
CN117349131A (zh) | 系统错误信息的显示方法、装置和计算机设备 | |
CN117155661A (zh) | 风险日志数据推送方法、装置、计算机设备和存储介质 | |
CN116909877A (zh) | 应用的调试方法、装置、计算机设备和存储介质 | |
CN117714522A (zh) | 一种网站登录状态共享方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |