业务弹窗控制方法、装置、计算机设备及存储介质与流程

文档序号:32055934发布日期:2022-11-04 21:24阅读:120来源:国知局
业务弹窗控制方法、装置、计算机设备及存储介质与流程

1.本技术涉及业务过程优化技术领域,尤其涉及一种业务弹窗控制方法、装置、计算机设备及存储介质。


背景技术:

2.目前,很多活动项目都有多弹窗的场景,当用户点击进入页面后,多弹窗需按顺序逐一弹出,常采用的处理方式是在弹窗回调中处理下一个回调,这种处理方式的相应代码的可读性很差,而且很容易因为临时改变弹窗顺序或新增弹窗而大幅度的调整代码,也会增加测试回归的成本。
3.因此,如何实现降低业务弹窗控制的成本成为亟需解决的问题。


技术实现要素:

4.本技术提供了一种业务弹窗控制方法、装置、计算机设备及存储介质,旨在实现降低业务弹窗控制的成本。
5.为实现上述目的,本技术提供一种业务弹窗控制方法,所述业务弹窗控制方法包括:
6.实例化每个业务弹窗对应的promise实例,并把每个所述promise实例加入队列,生成各个业务弹窗对应的队列列表;
7.在执行当前队列中的promise实例关闭当前业务弹窗后,基于所述队列列表,确定下一队列中的promise实例对应的下一个业务弹窗;
8.对所述下一个业务弹窗进行管理操作,所述管理操作包括显示/关闭所述下一个业务弹窗。
9.此外,为实现上述目的,本技术还提供一种业务弹窗控制装置,所述业务弹窗控制装置包括:
10.配置模块,用于实例化每个业务弹窗对应的promise实例,并把每个所述promise实例加入队列,生成各个业务弹窗对应的队列列表;
11.处理模块,用于在执行当前队列中的promise实例关闭当前业务弹窗后,基于所述队列列表,确定下一队列中的promise实例对应的下一个业务弹窗;
12.控制模块,用于对所述下一个业务弹窗进行管理操作,所述管理操作包括显示/关闭所述下一个业务弹窗。
13.此外,为实现上述目的,本技术还提供一种计算机设备,所述计算机设备包括存储器和处理器;
14.所述存储器,用于存储计算机程序;
15.所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的业务弹窗控制方法。
16.此外,为实现上述目的,本技术还提供一种计算机可读存储介质,所述计算机可读
存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的业务弹窗控制方法的步骤。
17.本技术公开了一种业务弹窗控制方法、装置、计算机设备及存储介质,通过实例化每个业务弹窗对应的promise实例,并把每个promise实例加入队列,生成各个业务弹窗对应的队列列表,在执行当前队列中的promise实例关闭当前业务弹窗后,基于队列列表,确定下一队列中的promise实例对应的下一个业务弹窗,然后对下一个业务弹窗进行显示/关闭等管理操作,相较于在业务弹窗回调中处理下一个回调的方式,调用方式简单,具有更高的复用性,因此,降低了业务弹窗控制的成本。
附图说明
18.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本技术实施例提供的一种业务弹窗控制方法的步骤示意性流程图;
20.图2是本技术实施例提供的一种公用组件逻辑处理示意图;
21.图3是本技术实施例提供的一种确定下一队列中的promise实例对应的下一个业务弹窗的步骤示意性流程图;
22.图4是本技术实施例提供的一种对所述下一个业务弹窗进行管理操作的步骤示意性流程图;
23.图5是本技术实施例提供的一种业务弹窗控制装置的示意性框图;
24.图6是本技术实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
25.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
26.附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
27.应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
28.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
29.目前,很多活动项目都有多弹窗的场景,如判断用户是新人则弹窗让用户去新人专区领取新人礼包,同时活动在用户首次进入时也需要下发礼包,或者活动任务可以在站外完成,进入活动则弹窗让用户领取奖励等,都是当用户点击进入页面后,多弹窗需按顺序逐一弹出。一般常采用的处理方式是在弹窗回调中处理下一个回调,这种处理方式的相应
代码的可读性很差,而且很容易因为临时改变弹窗顺序或新增弹窗而大幅度的调整代码,也会增加测试回归的成本。或者有些处理逻辑是同时弹出弹窗,通过层级关系控制弹窗显示顺序,这种方式的用户体验也很差。
30.为了解决上述问题,本技术的实施例提供了一种业务弹窗控制方法、装置、计算机设备及存储介质,用于实现降低业务弹窗控制的成本。
31.请参阅图1,图1是本技术一实施例提供的业务弹窗控制方法的流程示意图。该方法可以应用于计算机设备,本技术中对该方法的应用场景不做限定。下面以该业务弹窗控制方法应用于计算机设备中为例,对该业务弹窗控制方法进行详细介绍。
32.如图1所示,该业务弹窗控制方法具体包括步骤s101至步骤s103。
33.s101、实例化每个业务弹窗对应的promise实例,并把每个所述promise实例加入队列,生成各个业务弹窗对应的队列列表。
34.示例性的,预先配置通用的弹窗队列组件,为了便于描述,下文中统称为公用组件。该公用组件管理业务弹窗的显示状态、弹窗组件标识信息、弹窗配置信息等。其中,弹窗组件标识信息包括但不限于组件id、组件名称等,弹窗配置信息包括但不限于弹窗控件文案、弹窗控件回调、弹窗内容文案、弹窗背景等。
35.示例性的,公用组件通过eventbus事件总线暴露业务弹窗显示和关闭的方法,业务弹窗只需按顺序,调用eventbus事件总线的显示业务弹窗方法,定义对应的弹窗组件和插入弹窗组件标识信息,如组件id,传入弹窗配置信息即可。公用组件通过eventbus事件总线接收弹窗配置信息,从而把弹窗配置信息传递给弹窗组件。
36.每次调用显示业务弹窗时,公用组件实例化一个promise实例来对应一个业务弹窗,并把这个promise实例添加到队列中,并封装起来,生成各个业务弹窗对应的队列列表。
37.例如,如图2所示,对于业务弹窗1,实例化一个new promise实例,并添加到队列1中;对于业务弹窗2,实例化另一个new promise实例,并添加到队列2中;对于业务弹窗3,实例化另一个new promise实例,并添加到队列3中;依此,对于业务弹窗m,实例化另一个new promise实例,并添加到队列m中。队列1、队列2、队列3
……
队列m组成队列列表。
38.s102、在执行当前队列中的promise实例关闭当前业务弹窗后,基于所述队列列表,确定下一队列中的promise实例对应的下一个业务弹窗。
39.在进行多弹窗弹出操作的过程中,当执行某个队列中的promise实例关闭当前业务弹窗后,基于队列列表,处理下一个业务弹窗的任务,包括但不限于显示下一个业务弹窗。首先,确定下一队列中的promise实例对应的下一个业务弹窗。
40.例如,仍以如图2所示的队列列表为例,若当前业务弹窗为对应队列1中的promise实例的业务弹窗。在关闭当前业务弹窗后,也即关闭队列1对应的业务弹窗之后,基于队列列表,确定下一队列对应的业务弹窗,也即队列2对应的业务弹窗2,将业务弹窗2确定为当前业务弹窗对应的下一个业务弹窗,也即业务弹窗2为下一个业务弹窗。
41.在一些实施例中,如图3所示,步骤s102可以包括子步骤s1021和子步骤s1022。
42.s1021、获取弹窗组件标识信息,其中,每个业务弹窗对应唯一的弹窗组件标识信息。
43.例如,获取弹窗组件的组件id。示例性的,预先定义配置好弹窗组件对应的唯一组件id。在关闭当前业务弹窗后,基于队列列表,获取下一个业务弹窗对应的组件id。
44.在一些实施例中,所述获取弹窗组件标识信息之前,包括:
45.通过事件总线接收弹窗组件上传的所述弹窗组件标识信息,并保存所述弹窗组件标识信息。
46.弹窗组件上传弹窗组件标识信息如组件id至公用组件,公用组件通过eventbus事件总线接收弹窗组件上传的组件id等弹窗组件标识信息并保存。示例性的,公用组件将组件id等弹窗组件标识信息与弹窗配置信息关联保存进行管理。
47.s1022、将所述弹窗组件标识信息对应的业务弹窗,确定为所述下一个业务弹窗。
48.示例性的,基于队列列表获得组件id后,根据当前获得的组件id,将该组件id对应的业务弹窗,确定为下一个业务弹窗。
49.s103、对所述下一个业务弹窗进行管理操作,所述管理操作包括显示/关闭所述下一个业务弹窗。
50.示例性的,在关闭当前业务弹窗后,基于队列列表,根据下一个业务弹窗对应的组件id,显示该组件id对应的下一个业务弹窗。也即在当前业务弹窗关闭后,按序显示下一个业务弹窗,从而实现基于队列列表,按序显示各个业务弹窗。
51.在一些实施例中,如图4所示,步骤s103可以包括子步骤s1031和子步骤s1032。
52.s1031、根据所述弹窗组件标识信息,获取所述下一个业务弹窗对应的弹窗配置信息。
53.示例性的,公用组件根据下一个业务弹窗对应的组件id,获取下一个业务弹窗对应的弹窗控件文案、弹窗控件回调、弹窗内容文案、弹窗背景等弹窗配置信息。
54.s1032、将所述弹窗配置信息传给所述下一个业务弹窗对应的弹窗组件,以基于所述弹窗配置信息显示所述下一个业务弹窗。
55.获得下一个业务弹窗对应的弹窗配置信息之后,将下一个业务弹窗对应的弹窗配置信息传给下一个业务弹窗对应的弹窗组件,例如,通过eventbus事件总线将下一个业务弹窗对应的弹窗配置信息传给下一个业务弹窗对应的弹窗组件,从而控制下一个业务弹窗对应的弹窗组件基于弹窗配置信息显示下一个业务弹窗。
56.示例性的,所述在执行当前队列中的promise实例关闭当前业务弹窗后,还包括:更新所述当前业务弹窗对应的promise实例的状态为fulfilled状态值。
57.在关闭当前业务弹窗后,公用组件更新当前业务弹窗对应的promise实例的状态为fulfilled状态值,只有在当前业务弹窗对应的promise实例的状态更新为fulfilled状态值之后,才会基于队列列表,对下一个业务弹窗进行显示、关闭等管理操作。
58.相较于回调式处理业务弹窗的顺序带来的凌乱,通过promise实例对应业务弹窗来生成队列列表,基于队列列表按序弹出管理各个业务弹窗,大大降低了代码的复杂度,也不会因为临时改变业务弹窗顺序或新增业务弹窗而大幅度的调整代码而导致成本增加。并且,相较于堆叠显示多个弹窗中通过z-idnex控制显示的顺序,通过promise实例对应业务弹窗来生成队列列表,基于队列列表按序弹出管理各个业务弹窗,提高了用户体验。
59.本技术中把业务弹窗对应的队列控制逻辑整合到公用组件本身,方便了开发人员在开发过程中仅需关注业务本身,不需要额外耗费精力去处理业务弹窗的顺序控制问题,实现了业务本身的代码逻辑和控制代码逻辑高度解耦,提高了代码的可读性和可维护性,调用方式简单,具有较高的复用性,提高了开发人员的开发效率,也提升了开发人员定位和
处理问题的便利性。
60.上述实施例中,通过实例化每个业务弹窗对应的promise实例,并把每个promise实例加入队列,生成各个业务弹窗对应的队列列表,在执行当前队列中的promise实例关闭当前业务弹窗后,基于队列列表,确定下一队列中的promise实例对应的下一个业务弹窗,然后对下一个业务弹窗进行显示/关闭等管理操作,相较于在业务弹窗回调中处理下一个回调的方式,调用方式简单,具有更高的复用性,因此,降低了业务弹窗控制的成本。
61.请参阅图5,图5是本技术的实施例提供的一种业务弹窗控制装置的示意性框图,该业务弹窗控制装置可以配置于计算机设备中,用于执行前述的业务弹窗控制方法。
62.如图5所示,该业务弹窗控制装置1000,包括:配置模块1001、处理模块1002、以及控制模块1003。
63.配置模块1001,用于实例化每个业务弹窗对应的promise实例,并把每个所述promise实例加入队列,生成各个业务弹窗对应的队列列表;
64.处理模块1002,用于在执行当前队列中的promise实例关闭当前业务弹窗后,基于所述队列列表,确定下一队列中的promise实例对应的下一个业务弹窗;
65.控制模块1003,用于对所述下一个业务弹窗进行管理操作,所述管理操作包括显示/关闭所述下一个业务弹窗。
66.在一个实施例中,所述处理模块1002还用于:
67.获取弹窗组件标识信息,其中,每个业务弹窗对应唯一的弹窗组件标识信息;
68.将所述弹窗组件标识信息对应的业务弹窗,确定为所述下一个业务弹窗。
69.在一个实施例中,所述处理模块1002还用于:
70.通过事件总线接收弹窗组件上传的所述弹窗组件标识信息,并保存所述弹窗组件标识信息。
71.在一个实施例中,所述弹窗组件标识信息包括组件id、组件名称中至少一种。
72.在一个实施例中,所述控制模块1003还用于:
73.根据所述弹窗组件标识信息,获取所述下一个业务弹窗对应的弹窗配置信息;
74.将所述弹窗配置信息传给所述下一个业务弹窗对应的弹窗组件,以基于所述弹窗配置信息显示所述下一个业务弹窗。
75.在一个实施例中,所述弹窗配置信息包括弹窗控件文案、弹窗控件回调、弹窗内容文案、弹窗背景中至少一项。
76.在一个实施例中,所述处理模块1002还用于:
77.更新所述当前业务弹窗对应的promise实例的状态为fulfilled状态值。
78.其中,上述业务弹窗控制装置1000中各个模块与上述业务弹窗控制方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
79.本技术的方法、装置可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,
在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
80.示例性的,上述的方法、装置可以实现为一种计算机程序的形式,该计算机程序可以在如图6所示的计算机设备上运行。
81.请参阅图6,图6是本技术实施例提供的一种计算机设备的结构示意性框图。
82.请参阅图6,该计算机设备包括通过系统总线连接的处理器和存储器,其中,存储器可以包括非易失性存储介质和内存储器。
83.处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
84.内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种业务弹窗控制方法。
85.应当理解的是,处理器可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
86.其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
87.实例化每个业务弹窗对应的promise实例,并把每个所述promise实例加入队列,生成各个业务弹窗对应的队列列表;
88.在执行当前队列中的promise实例关闭当前业务弹窗后,基于所述队列列表,确定下一队列中的promise实例对应的下一个业务弹窗;
89.对所述下一个业务弹窗进行管理操作,所述管理操作包括显示/关闭所述下一个业务弹窗。
90.在一个实施例中,所述处理器在实现所述确定下一队列中的promise实例对应的下一个业务弹窗时,用于实现:
91.获取弹窗组件标识信息,其中,每个业务弹窗对应唯一的弹窗组件标识信息;
92.将所述弹窗组件标识信息对应的业务弹窗,确定为所述下一个业务弹窗。
93.在一个实施例中,所述处理器在实现所述获取弹窗组件标识信息之前,用于实现:
94.通过事件总线接收弹窗组件上传的所述弹窗组件标识信息,并保存所述弹窗组件标识信息。
95.在一个实施例中,所述弹窗组件标识信息包括组件id、组件名称中至少一种。
96.在一个实施例中,所述处理器在实现所述对所述下一个业务弹窗进行管理操作时,用于实现:
97.根据所述弹窗组件标识信息,获取所述下一个业务弹窗对应的弹窗配置信息;
98.将所述弹窗配置信息传给所述下一个业务弹窗对应的弹窗组件,以基于所述弹窗配置信息显示所述下一个业务弹窗。
99.在一个实施例中,所述弹窗配置信息包括弹窗控件文案、弹窗控件回调、弹窗内容文案、弹窗背景中至少一项。
100.在一个实施例中,所述处理器在实现所述在执行当前队列中的promise实例关闭当前业务弹窗后,用于实现:
101.更新所述当前业务弹窗对应的promise实例的状态为fulfilled状态值。
102.本技术实施例还提供一种计算机可读存储介质。
103.本技术计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的业务弹窗控制方法的步骤。
104.其中,所述计算机可读存储介质可以是前述实施例所述的业务弹窗控制装置或计算机设备的内部存储单元,例如所述业务弹窗控制装置或计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述业务弹窗控制装置或计算机设备的外部存储设备,例如所述业务弹窗控制装置或计算机设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字卡(secure digital card,sd card),闪存卡(flash card)等。
105.进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
106.本技术所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
107.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
108.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1