CN113051511B - 页面消息分发方法、装置、设备和存储介质 - Google Patents
页面消息分发方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113051511B CN113051511B CN202110252337.1A CN202110252337A CN113051511B CN 113051511 B CN113051511 B CN 113051511B CN 202110252337 A CN202110252337 A CN 202110252337A CN 113051511 B CN113051511 B CN 113051511B
- Authority
- CN
- China
- Prior art keywords
- message
- subscription
- inline
- pages
- page
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000006870 function Effects 0.000 claims abstract description 118
- 238000005315 distribution function Methods 0.000 claims abstract description 12
- 230000008569 process Effects 0.000 claims abstract description 10
- 230000015654 memory Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 description 7
- 230000018109 developmental process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000033772 system development Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种页面消息分发方法、装置、设备及存储介质,涉及计算机技术领域。该方法包括:在第一页面中引入脚本文件以注入全局对象;在监听到第一消息事件后,调用消息分发函数对所述第一页面和所述多个内联页面进行消息分发;其中,所述多个内联页面已经通过调用消息订阅函数完成消息订阅,所述消息订阅的过程包括:执行消息订阅函数时,根据传入消息的主题参数确定消息类型,根据所述消息类型以及所述传入消息的名称订阅多个内联页面对应的回调函数。利用本申请可降低平台系统复杂度。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种页面消息分发方法、装置、设备和存储介质。
背景技术
随着现代公司业务的不断发展壮大,业务场景纷繁复杂,公司体系下有着许多的历史项目,传统的项目大多使用的是多页面开发应用,在某些场景下例如后台管理系统中,存在项目技术老旧、重构成本高且收益不大的项目,而有时为了满足当前的发展需求,不得不进行历史项目的功能整合,这时,希望能以最低的成本推动旧有功能整合,在一定程度上实现系统升级改造。
为此,以网页中包含iframe页面的情况为例,其中iframe页面通常指文档中的文档、内联页面或称内联框架,整合时,可在网页中查找到对应的iframe对象,通过“postMessage”方法实现当前页面与嵌套的一级子iframe页面之间的消息传递,其中存在以下情况:如果某一页面中使用了多个iframe窗体,且每个iframe页面需要多处监听该页面分发的消息,则消息的分发和监听将会变得繁琐杂乱,这是因为,在消息的分发和监听过程中每次都需要查找所有的iframe页面,在各个iframe页面内部均需要多次使用“onmessage”方法监听该页面分发的消息,这样的操作不仅项目代码冗余杂乱,业务逻辑条理不清晰,还会造成项目开发和维护成本升高。
发明内容
本申请提供一种页面消息分发方法、装置、设备、存储介质和计算机程序产品,用于解决以上至少一个问题。
根据本申请的第一方面,提供了一种页面消息分发方法,页面消息分发方法用于包括多个内联页面的第一页面;页面消息分发方法包括:
在第一页面中引入脚本文件以注入全局对象;
在监听到第一消息事件后,调用消息分发函数对第一页面和多个内联页面进行消息分发;
其中,多个内联页面已经通过调用消息订阅函数完成消息订阅,消息订阅的过程包括:执行消息订阅函数时,根据传入消息的主题参数确定消息类型,根据消息类型以及传入消息的名称订阅多个内联页面对应的回调函数。
根据本申请的第二方面,提供了一种页面消息分发装置,页面消息分发装置用于包括多个内联页面的第一页面;页面消息分发装置包括:
引入模块,用于在第一页面中引入脚本文件以注入全局对象;
消息分发模块,用于在监听到第一消息事件后,调用消息分发函数对第一页面和多个内联页面进行消息分发;
其中,多个内联页面已经通过消息订阅模块调用消息订阅函数完成消息订阅,消息订阅的过程包括:执行消息订阅函数时,根据传入消息的主题参数确定消息类型,根据消息类型以及传入消息的名称订阅多个内联页面对应的回调函数。
根据本申请的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上的方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如上的方法。
根据本申请的第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如上的方法。
本申请的实施例可通过调用消息分发函数进行当前页面及其子页面的消息分发,利用本申请实施例辅助系统开发,可降低系统复杂度,在一定程度上实现业务功能之间的解耦,提高系统开发效率。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请一个实施例的页面消息分发方法的流程框图;
图2是本申请另一实施例的页面消息分发方法的原理框图;
图3是本申请一个实施例的消息订阅流程图;
图4是本申请一个实施例的取消订阅流程图;
图5是本申请一个实施例的消息分发流程图;
图6是本申请实施例的页面消息分发装置的结构框图;
图7是实现本申请实施例的页面消息分发方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请实施例提供一种页面消息分发方法,用于包括多个内联页面的第一页面;图1示出了本申请实施例的页面消息分发方法的流程框图,该方法包括:
S101,在第一页面中引入脚本文件以注入全局对象;
S102,在监听到第一消息事件后,调用消息分发函数对第一页面和多个内联页面进行消息分发;
其中,多个内联页面已经通过调用消息订阅函数完成消息订阅,消息订阅的过程包括:执行消息订阅函数时,根据传入消息的主题参数确定消息类型,根据消息类型以及传入消息的名称订阅多个内联页面对应的回调函数。
在本申请的实施例中,可选地,其中内联页面可为嵌套在第一页面中的iframe页面,例如嵌套在第一页面中的多个子一级iframe页面。在本申请的其他实施例中,内联页面也可为符合其他标准或规范的内嵌子页面。,
根据本申请的实施例,页面中引入脚本文件后可注入全局对象,通过调用dispatch消息分发函数或称消息分发方法可进行当前页面及其子页面(例如子iframe页面)的消息分发,并可通过调用subscribe消息订阅方法进行消息的订阅。利用本申请的实施例能够带来处理逻辑简洁、系统复杂度低的优势,可在一定程度上实现业务功能之间的解耦,提高系统开发效率。
根据本申请的实施例,可选地,第一页面和多个内联页面可均基于封装的软件开发工具包(Software Development Kit,SDK),如此,可方便地通过内部接口(如api接口)调用对应的方法或称函数进行消息订阅、取消订阅和/或消息分发等操作,以下分别详细描述。
根据本申请的实施例,可选地,可根据传入消息的主题参数确定消息类型(例如“一对多”或者“一对一”),根据消息类型以及传入消息的名称查找多个内联页面已订阅的回调函数,根据已订阅的回调函数对第一页面和多个内联页面进行消息分发。
(1)若消息类型为一对多类型,传入消息对应多个内联页面,则根据传入消息的名称分别查找多个内联页面已订阅的回调函数,通过调用已订阅的回调函数对第一页面和多个内联页面进行消息分发。
(2)若消息类型为一对一类型,传入消息对应一个内联页面,则根据传入消息的名称查找多个内联页面中发生最后一次订阅时所订阅的回调函数,通过调用已订阅的回调函数对第一页面和多个内联页面进行消息分发。
采用以上至少一种实施方式,如果在内联页面中有多处业务模块需要监听,则不需要查找内联页面中的所有对象进行监听,而是通过调用已订阅的回调函数实现当前页面及内联页面的消息分发,可避免多处监听导致的代码冗余、逻辑杂乱等问题。
根据本申请的实施例,可选地,执行消息订阅函数时,可根据传入消息的主题参数确定消息类型,根据消息类型(例如“一对多”或者“一对一”)以及传入消息的名称订阅多个内联页面对应的回调函数,其中,
(1)若消息类型为一对多类型,传入消息对应多个内联页面,则根据传入消息的名称分别订阅多个内联页面对应的回调函数。
(2)若消息类型为一对一类型,传入消息对应一个内联页面,则根据传入消息的名称订阅多个内联页面中发生最后一次订阅时的回调函数。
采用以上至少一种实施方式,可对多种场景下的系统页面及其内联页面分别执行消息订阅,根据已订阅的回调函数进行各页面的消息分发,可灵活满足点对点以及点对面的消息分发场景需求,并且不同的业务功能模块之间相互不存在干涉,系统的复杂度低,有利于系统的开发和维护。
根据本申请的实施例,可选地,可通过调用取消订阅函数对多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,根据消息类型、传入消息的名称以及传入消息中的参数种类,取消订阅对应的回调函数;其中,
(1)通过调用取消订阅函数对多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,若消息类型为一对多类型,且传入消息中包含第一预设参数,则将传入消息名称下与第一预设参数对应的回调函数取消订阅。
(2)通过调用取消订阅函数对多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,若消息类型为一对多类型,且传入消息中不包含第一预设参数,则将传入消息名称下的全部回调函数取消订阅。
(3)通过调用取消订阅函数对多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,若消息类型为一对一类型,则将传入消息的名称下的全部回调函数取消订阅。
采用以上至少一种实施方式,当需要取消对某个或某些消息的订阅时,可根据消息类型(例如“一对多”或者“一对一”)以及其中包含的参数种类执行取消,例如,如果传入消息中包含第一预设参数,表示需要取消的是与该第一预设参数对应的回调函数,如果传入消息中不包含第一预设参数,表示需要取消的是该传入消息名称下的全部回调函数。如此,应用中系统的逻辑简洁,风格统一,系统复杂度低,易于开发维护,可节约人力及时间成本。
以上描述了本申请实施例的页面消息分发方法的实施方式以及取得的优势。以下通过具体的例子详细描述本申请实施例的具体处理过程。
在本申请的一种实施方式中,基于封装成SDK的方法库,通过发布订阅的方式灵活实现消息向下分发,图2示意性地示出了本实施例的页面消息分发方法的原理流程图。
结合图2,以内联页面为iframe页面为例,在系统的各个页面中可按需引入SDK,会在Window窗口对象上注入eventBus全局对象,然后可通过内部api调用“subscribe”方法进行消息订阅,可通过内部api调用“unsubscribe”方法取消订阅,可通过内部api调用“dispatch”方法进行当前页面及其下全部或部分一级子iframe页面的消息分发。其中,对于不同的消息类型,如一对多(multipleTopic)类型、一对一(singleTopic)类型,处理方式不同,以下分别进行详细描述。
(一)消息订阅流程
参考图3所示的消息订阅流程图,在页面中引入SDK库后,通过调用subscribe方法,根据传入的topic主题参数判断消息类型(一对一或者一对多),其中,如果是一对多类型,则根据key值(可称为键值,包含消息名称)分别收集对应的回调函数,完成订阅。例如,订阅时,对于各个消息的key值(key1,key2…keyN),如果该key值存在则将其加入函数列表,如果该key值不存在则创建对应的函数列表;如果是一对一类型,则根据key值只收集最后一次的回调函数。例如,如果该key值存在则更新函数,如果该key值不存在则增加对应的函数。
(二)取消订阅流程
参考图4所示的取消订阅流程图,在页面中引入SDK库后,通过调用unsubscribe方法,根据传入的topic参数进行消息类型(一对一,一对多)判断,其中,如果是一对多类型,则根据key值和handler参数,删除key值下的与handler参数对应的回调函数;如果handler参数不存在,则直接删除当前key值下所有的回调函数;如果key和handler参数均不存在则返回;如果是一对一类型,则根据key值查找并删除该key值下已订阅的回调函数。
(三)消息分发流程
参考图5所示的消息分发流程图,在页面中引入SDK库后,自动监听onmessage事件,当通过onmessage事件监听到消息后,调用dispatch方法进行当前页面及其下所有一级子iframe页面的消息分发,根据传入的topic参数进行消息类型(一对一,一对多)判断,然后根据key值查找对应的回调函数,分别执行调用,完成对当前页面及其下所有一级子iframe页面的消息分发。
利用本申请以上至少一个实施例,可支持一对一和/或一对多的多场景消息分发机制,灵活高效,且系统开发代码简洁,风格统一,便于维护,在一定程度上实现了业务功能模块之间的解耦,可提高系统开发效率。
以上通过多个实施例从不同角度描述了本申请实施例的具体设置和实现方式。与上述至少一个实施例的处理方法相对应地,本申请实施例还提供一种页面消息分发装置100,参考图6,其包括:
引入模块110,用于在第一页面中引入脚本文件以注入全局对象;
消息分发模块120,用于在监听到第一消息事件后,调用消息分发函数对第一页面和多个内联页面进行消息分发;
其中,多个内联页面已经通过消息订阅模块调用消息订阅函数完成消息订阅,消息订阅的过程包括:执行消息订阅函数时,根据传入消息的主题参数确定消息类型,根据消息类型以及传入消息的名称订阅多个内联页面对应的回调函数。
可选地,消息分发模块包括:第一分发子模块,用于根据传入消息的主题参数确定消息类型,根据消息类型以及传入消息的名称查找多个内联页面已订阅的回调函数,根据已订阅的回调函数对第一页面和多个内联页面进行消息分发。
可选地,消息分发模块包括:第二分发子模块,用于根据传入消息的主题参数确定消息类型,若消息类型为一对多类型,传入消息对应多个内联页面,则根据传入消息的名称分别查找多个内联页面已订阅的回调函数,通过调用已订阅的回调函数对第一页面和多个内联页面进行消息分发。
可选地,消息分发模块包括:第三分发子模块,用于根据传入消息的主题参数确定消息类型,若消息类型为一对一类型,传入消息对应一个内联页面,则根据传入消息的名称查找多个内联页面中发生最后一次订阅时所订阅的回调函数,通过调用已订阅的回调函数对第一页面和多个内联页面进行消息分发。
可选地,消息订阅模块包括:第一订阅子模块,用于在执行消息订阅函数时,根据传入消息的主题参数确定消息类型,若消息类型为一对多类型,传入消息对应多个内联页面,则根据传入消息的名称分别订阅多个内联页面对应的回调函数。
可选地,消息订阅模块包括:第二订阅子模块,用于在执行消息订阅函数时,根据传入消息的主题参数确定消息类型,若消息类型为一对一类型,传入消息对应一个内联页面,则根据传入消息的名称订阅多个内联页面中发生最后一次订阅时的回调函数。
可选地,页面消息分发装置100还包括:第一取消模块,用于通过调用取消订阅函数对多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,根据消息类型、传入消息的名称以及传入消息中的参数种类,取消订阅对应的回调函数。
可选地,页面消息分发装置100还包括:第二取消模块,用于通过调用取消订阅函数对多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,若消息类型为一对多类型,且传入消息中包含第一预设参数,则将传入消息名称下与第一预设参数对应的回调函数取消订阅。
可选地,页面消息分发装置100还包括:第三取消模块,用于通过调用取消订阅函数对多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,若消息类型为一对多类型,且传入消息中不包含第一预设参数,则将传入消息名称下的全部回调函数取消订阅。
可选地,页面消息分发装置100还包括:第四取消模块,用于通过调用取消订阅函数对多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,若消息类型为一对一类型,则将传入消息的名称下的全部回调函数取消订阅。
可选地,内联页面包括嵌套在第一页面中的iframe页面。
可选地,第一消息事件包括onmessage事件。
如图7所示,该电子设备包括:一个或多个处理器1001、存储器1002,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面(Graphical User Interface,GUI)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器1001为例。
存储器1002即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的页面消息分发方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的页面消息分发方法。
存储器1002作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的页面消息分发方法对应的程序指令/模块。处理器1001通过运行存储在存储器1002中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的页面消息分发方法。
存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据搜索结果的分析处理电子设备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1002可选包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至搜索结果的分析处理电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例的页面消息分发方法对应的电子设备还可以包括:输入装置1003和输出装置1004。处理器1001、存储器1002、输入装置1003和输出装置1004可以通过总线或者其他方式连接,本申请图7实施例中以通过总线连接为例。
输入装置1003可接收输入的数字或字符信息,以及产生与搜索结果的分析处理电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1004可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(Liquid Crystal Display,LCD)、发光二极管(Light EmittingDiode,LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用集成电路(Application Specific Integrated Circuits,ASIC)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(programmable logic device,PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(Cathode Ray Tube,阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (26)
1.一种页面消息分发方法,所述页面消息分发方法用于包括多个内联页面的第一页面;所述页面消息分发方法包括:
在所述第一页面中引入脚本文件以注入全局对象;
在监听到第一消息事件后,调用消息分发函数对已注入所述全局对象的所述第一页面和所述多个内联页面进行消息分发;
其中,所述多个内联页面已经通过调用消息订阅函数完成消息订阅,所述消息订阅的过程包括:执行消息订阅函数时,根据传入消息的主题参数确定消息类型,根据所述消息类型以及所述传入消息的名称订阅多个内联页面对应的回调函数。
2.根据权利要求1所述的方法,所述调用消息分发函数对所述第一页面和所述多个内联页面进行消息分发,包括:
根据传入消息的主题参数确定消息类型,根据所述消息类型以及所述传入消息的名称查找多个内联页面已订阅的回调函数,根据已订阅的回调函数对所述第一页面和所述多个内联页面进行消息分发。
3.根据权利要求1所述的方法,所述调用消息分发函数对所述第一页面和所述多个内联页面进行消息分发,包括:
根据传入消息的主题参数确定消息类型,若所述消息类型为一对多类型,所述传入消息对应多个内联页面,则根据所述传入消息的名称分别查找多个内联页面已订阅的回调函数,通过调用已订阅的回调函数对所述第一页面和所述多个内联页面进行消息分发。
4.根据权利要求1所述的方法,所述调用消息分发函数对所述第一页面和所述多个内联页面进行消息分发,包括:
根据传入消息的主题参数确定消息类型,若所述消息类型为一对一类型,所述传入消息对应一个内联页面,则根据所述传入消息的名称查找多个内联页面中发生最后一次订阅时所订阅的回调函数,通过调用已订阅的回调函数对所述第一页面和所述多个内联页面进行消息分发。
5.根据权利要求1所述的方法,其中,
执行消息订阅函数时,根据传入消息的主题参数确定消息类型,若所述消息类型为一对多类型,所述传入消息对应多个内联页面,则根据所述传入消息的名称分别订阅多个内联页面对应的回调函数。
6.根据权利要求1所述的方法,其中,
执行消息订阅函数时,根据传入消息的主题参数确定消息类型,若所述消息类型为一对一类型,所述传入消息对应一个内联页面,则根据所述传入消息的名称订阅多个内联页面中发生最后一次订阅时的回调函数。
7.根据权利要求1所述的方法,还包括:通过调用取消订阅函数对所述多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,根据所述消息类型、所述传入消息的名称以及所述传入消息中的参数种类,取消订阅对应的回调函数。
8.根据权利要求1所述的方法,还包括:通过调用取消订阅函数对所述多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,若消息类型为一对多类型,且传入消息中包含第一预设参数,则将所述传入消息名称下与所述第一预设参数对应的回调函数取消订阅。
9.根据权利要求1所述的方法,还包括:通过调用取消订阅函数对所述多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,若消息类型为一对多类型,且传入消息中不包含第一预设参数,则将所述传入消息名称下的全部回调函数取消订阅。
10.根据权利要求1所述的方法,还包括:通过调用取消订阅函数对所述多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,若消息类型为一对一类型,则将所述传入消息的名称下的全部回调函数取消订阅。
11.根据权利要求1所述的方法,所述内联页面包括嵌套在所述第一页面中的iframe页面,和/或所述第一消息事件包括onmessage事件。
12.根据权利要求1-11中任一项所述的方法,所述第一页面和所述多个内联页面均基于封装的软件开发工具包SDK。
13.一种页面消息分发装置,所述页面消息分发装置用于包括多个内联页面的第一页面;所述页面消息分发装置包括:
引入模块,用于在所述第一页面中引入脚本文件以注入全局对象;
消息分发模块,用于在监听到第一消息事件后,调用消息分发函数对已注入所述全局对象的所述第一页面和所述多个内联页面进行消息分发;
其中,所述多个内联页面已经通过消息订阅模块调用消息订阅函数完成消息订阅,所述消息订阅的过程包括:执行消息订阅函数时,根据传入消息的主题参数确定消息类型,根据所述消息类型以及所述传入消息的名称订阅多个内联页面对应的回调函数。
14.根据权利要求13所述的装置,其中,
所述消息分发模块包括:第一分发子模块,用于根据传入消息的主题参数确定消息类型,根据所述消息类型以及所述传入消息的名称查找多个内联页面已订阅的回调函数,根据已订阅的回调函数对所述第一页面和所述多个内联页面进行消息分发。
15.根据权利要求13所述的装置,其中,
所述消息分发模块包括:第二分发子模块,用于根据传入消息的主题参数确定消息类型,若所述消息类型为一对多类型,所述传入消息对应多个内联页面,则根据所述传入消息的名称分别查找多个内联页面已订阅的回调函数,通过调用已订阅的回调函数对所述第一页面和所述多个内联页面进行消息分发。
16.根据权利要求13所述的装置,其中,
所述消息分发模块包括:第三分发子模块,用于根据传入消息的主题参数确定消息类型,若所述消息类型为一对一类型,所述传入消息对应一个内联页面,则根据所述传入消息的名称查找多个内联页面中发生最后一次订阅时所订阅的回调函数,通过调用已订阅的回调函数对所述第一页面和所述多个内联页面进行消息分发。
17.根据权利要求13所述的装置,其中,
所述消息订阅模块包括:第一订阅子模块,用于在执行消息订阅函数时,根据传入消息的主题参数确定消息类型,若所述消息类型为一对多类型,所述传入消息对应多个内联页面,则根据所述传入消息的名称分别订阅多个内联页面对应的回调函数。
18.根据权利要求13所述的装置,其中,
所述消息订阅模块包括:第二订阅子模块,用于在执行消息订阅函数时,根据传入消息的主题参数确定消息类型,若所述消息类型为一对一类型,所述传入消息对应一个内联页面,则根据所述传入消息的名称订阅多个内联页面中发生最后一次订阅时的回调函数。
19.根据权利要求13所述的装置,还包括:
第一取消模块,用于通过调用取消订阅函数对所述多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,根据所述消息类型、所述传入消息的名称以及所述传入消息中的参数种类,取消订阅对应的回调函数。
20.根据权利要求13所述的装置,还包括:
第二取消模块,用于通过调用取消订阅函数对所述多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,若消息类型为一对多类型,且传入消息中包含第一预设参数,则将所述传入消息名称下与所述第一预设参数对应的回调函数取消订阅。
21.根据权利要求13所述的装置,还包括:
第三取消模块,用于通过调用取消订阅函数对所述多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,若消息类型为一对多类型,且传入消息中不包含第一预设参数,则将所述传入消息名称下的全部回调函数取消订阅。
22.根据权利要求13所述的装置,还包括:
第四取消模块,用于通过调用取消订阅函数对所述多个内联页面执行取消消息订阅,取消消息订阅时,根据传入消息的主题参数确定消息类型,若消息类型为一对一类型,则将所述传入消息的名称下的全部回调函数取消订阅。
23.根据权利要求13所述的装置,所述内联页面包括嵌套在所述第一页面中的iframe页面,和/或所述第一消息事件包括onmessage事件。
24.根据权利要求13-23中任一项所述的装置,所述第一页面和所述多个内联页面均基于封装的软件开发工具包SDK。
25.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-12中任一项所述的方法。
26.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行如权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110252337.1A CN113051511B (zh) | 2021-03-08 | 2021-03-08 | 页面消息分发方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110252337.1A CN113051511B (zh) | 2021-03-08 | 2021-03-08 | 页面消息分发方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113051511A CN113051511A (zh) | 2021-06-29 |
CN113051511B true CN113051511B (zh) | 2024-03-12 |
Family
ID=76510482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110252337.1A Active CN113051511B (zh) | 2021-03-08 | 2021-03-08 | 页面消息分发方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051511B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398533B1 (en) * | 2000-05-09 | 2008-07-08 | Sun Microsystems, Inc. | Remote function invocation with messaging in a distributed computing environment |
CN104360904A (zh) * | 2014-10-16 | 2015-02-18 | 四川长虹电器股份有限公司 | 基于事件总线的模块间消息传递机制 |
CN107688570A (zh) * | 2016-08-03 | 2018-02-13 | 腾讯科技(深圳)有限公司 | 一种页面信息处理方法和系统 |
CN109348303A (zh) * | 2018-09-30 | 2019-02-15 | 武汉斗鱼网络科技有限公司 | 一种弹幕消息的分发方法、装置、终端和存储介质 |
CN109725887A (zh) * | 2018-12-14 | 2019-05-07 | 中国平安财产保险股份有限公司 | 基于消息研发框架的数据交互方法、装置及终端设备 |
US10382307B1 (en) * | 2016-12-22 | 2019-08-13 | Amazon Technologies, Inc. | Transmission of subscription-based messages to Internet of Things (IoT) devices |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8661080B2 (en) * | 2010-07-15 | 2014-02-25 | International Business Machines Corporation | Propagating changes in topic subscription status of processes in an overlay network |
US9524198B2 (en) * | 2012-07-27 | 2016-12-20 | Google Inc. | Messaging between web applications |
-
2021
- 2021-03-08 CN CN202110252337.1A patent/CN113051511B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398533B1 (en) * | 2000-05-09 | 2008-07-08 | Sun Microsystems, Inc. | Remote function invocation with messaging in a distributed computing environment |
CN104360904A (zh) * | 2014-10-16 | 2015-02-18 | 四川长虹电器股份有限公司 | 基于事件总线的模块间消息传递机制 |
CN107688570A (zh) * | 2016-08-03 | 2018-02-13 | 腾讯科技(深圳)有限公司 | 一种页面信息处理方法和系统 |
US10382307B1 (en) * | 2016-12-22 | 2019-08-13 | Amazon Technologies, Inc. | Transmission of subscription-based messages to Internet of Things (IoT) devices |
CN109348303A (zh) * | 2018-09-30 | 2019-02-15 | 武汉斗鱼网络科技有限公司 | 一种弹幕消息的分发方法、装置、终端和存储介质 |
CN109725887A (zh) * | 2018-12-14 | 2019-05-07 | 中国平安财产保险股份有限公司 | 基于消息研发框架的数据交互方法、装置及终端设备 |
Non-Patent Citations (2)
Title |
---|
Design and Implementation of Internet of Things Message Subscription System Based on Kafka;Zhonghu Y.等;2019 IEEE 11th International Conference on Communication Software and Networks (ICCSN);全文 * |
中间件Ice中消息服务的技术研究及改进;张峰峰;潘明;韦海旋;;现代电子技术(第16期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113051511A (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10310969B2 (en) | Systems and methods for test prediction in continuous integration environments | |
US20210092195A1 (en) | Information push method and device | |
CN108519914B (zh) | 大数据计算方法、系统和计算机设备 | |
CN111258609A (zh) | Kubernetes集群的升级方法、装置、电子设备和介质 | |
CN111694857B (zh) | 存储资源数据的方法、装置、电子设备及计算机可读介质 | |
US11270669B2 (en) | Rendering method and apparatus, electronic device and storage medium | |
JP2021170335A (ja) | アプリケーション構築方法、装置、電子設備、記憶媒体、及びプログラム | |
CN111813623B (zh) | 一种页面监控方法、装置、电子设备及存储介质 | |
JP6217644B2 (ja) | ルール分配サーバ、イベント処理システム、方法及びプログラム | |
CN111610972B (zh) | 页面生成方法、装置、设备及存储介质 | |
CN105429813A (zh) | docker的监控方法及客户端 | |
CN112491617B (zh) | 一种链路跟踪方法、装置、电子设备和介质 | |
CN111427701A (zh) | 一种工作流引擎系统和业务处理方法 | |
CN109284126B (zh) | 类库自动更新方法、装置、电子设备、存储介质 | |
CN113722647A (zh) | 显示信息的方法和装置 | |
CN109871209A (zh) | 列表页面状态恢复方法及装置 | |
CN111949272A (zh) | 寄宿应用的编译优化方法、装置、电子设备及可读存储介质 | |
CN111881387A (zh) | 用于小程序的数据处理方法、装置、设备和介质 | |
CN112506854A (zh) | 页面模板文件的存储和页面生成方法、装置、设备及介质 | |
CN111796851A (zh) | 客户端基础库更新方法、装置、电子设备和存储介质 | |
CN113158098A (zh) | 页面生成方法、装置、设备和介质 | |
US20210248486A1 (en) | Method, apparatus, device and storage medium for customizing personalized rules for entities | |
CN113051511B (zh) | 页面消息分发方法、装置、设备和存储介质 | |
CN112069137A (zh) | 生成信息的方法、装置、电子设备及计算机可读存储介质 | |
CN112130888A (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 |