一种按钮事件处理方法及装置与流程
1.本技术涉及页面操作领域,具体而言,涉及一种按钮事件处理方法及装置。
背景技术:
2.目前,在使用各种页面进行生产的过程中,总会频繁的出现重复点击的问题,从而迫使开发团队针对点击操作做出多种防重策略。其中,现有的防重策略主要分为两种:一种是接口防重,另一种是交互防重。
3.其中,接口防重仅仅适用于前后端有交互时的场景,存在局限性,且点击始终会触发接口调用,白白地浪费了资源;而交互防重则是在间隔时间上做设置逻辑判断,从而杜绝页面按钮的重复使用。
4.在实际中,该种大部分团队使用的交互防重方法并没有办法确定具体的逻辑耗时。因为,接口会在网络差的时候将原本1秒的响应时长延长成3秒,从而使得单纯设置点击间隔为1秒是无法解决防重问题的。同时,如果此时将点击间隔设置为5秒,那过长的等待时间会卡顿页面的交互操作。
5.因此不难看出,现有的方法很难有效的实现防重的效果。
技术实现要素:
6.本技术实施例的目的在于提供一种按钮事件处理方法及装置,能够提高防重的效果,并使得针对按钮事件的防重方法具有一定的复用性。
7.本技术实施例第一方面提供了一种按钮事件处理方法,包括:
8.当检测到按钮事件触发时,判断所述按钮事件是否处于禁用触发状态;
9.当所述按钮事件不处于所述禁止触发状态时,判断所述按钮事件是否触发防重机制;
10.当所述按钮事件未触发所述防重机制时,判断该按钮事件是否为异步回调事件;
11.当所述按钮事件为所述异步回调事件时,阻塞所述按钮事件再次触发。
12.在上述实现过程中,该方法当检测到按钮事件触发时,判断按钮事件是否处于禁用触发状态;当按钮事件不处于禁止触发状态时,判断按钮事件是否触发防重机制;当按钮事件未触发防重机制时,判断该按钮事件是否为异步回调事件;当按钮事件为异步回调事件时,阻塞按钮事件再次触发。可见,实施这种实施方式,能够提高防重的效果,并使得针对按钮事件的防重方法具有一定的复用性。
13.进一步地,所述阻塞所述按钮事件再次触发的步骤之后,所述方法还包括:
14.当所述异步回调事件执行完毕时,取消对所述按钮事件再次触发的阻塞。
15.进一步地,所述阻塞所述按钮事件再次触发的步骤之后,所述方法还包括:
16.在预设阻塞时长后,取消对所述按钮事件再次触发的阻塞;
17.当检测到新异步事件时,判断所述异步回调事件是否执行完毕;
18.当所述异步回调事件执行完毕时,执行所述新异步事件。
19.进一步地,所述阻塞所述按钮事件再次触发的步骤之后,所述方法还包括:
20.当所述异步回调事件执行完毕时,收集所述按钮事件的事件函数;
21.判断所述事件函数中是否包括指定修饰符;
22.当所述事件函数中包括所述指定修饰符时,基于所述指定修饰符进行相应操作。
23.进一步地,所述判断所述按钮事件是否触发防重机制的步骤包括:
24.获取所述按钮事件的上次触发时间和当次触发时间;
25.计算所述上次触发时间和所述当次触发时间的触发时间差;
26.判断所述触发时间差是否大于预设的防重时间差;
27.当所述触发时间差大于所述防重时间差时,确定所述按钮事件未触发所述防重机制,并将所述当次触发时间确定为所述上次触发时间。
28.本技术实施例第二方面提供了一种按钮事件处理装置,所述按钮事件处理装置包括:
29.第一判断单元,用于当检测到按钮事件触发时,判断所述按钮事件是否处于禁用触发状态;
30.第二判断单元,用于当所述按钮事件不处于所述禁止触发状态时,判断所述按钮事件是否触发防重机制;
31.第三判断单元,用于当所述按钮事件未触发所述防重机制时,判断该按钮事件是否为异步回调事件;
32.阻塞单元,用于当所述按钮事件为所述异步回调事件时,阻塞所述按钮事件再次触发。
33.在上述实现过程中,该装置可以通过第一判断单元在检测到按钮事件触发时,判断按钮事件是否处于禁用触发状态;通过第二判断单元在按钮事件不处于禁止触发状态时,判断按钮事件是否触发防重机制;通过第三判断单元在按钮事件未触发防重机制时,判断该按钮事件是否为异步回调事件;通过阻塞单元在按钮事件为异步回调事件时,阻塞按钮事件再次触发。可见,实施这种实施方式,能够提高防重的效果,并使得针对按钮事件的防重方法具有一定的复用性。
34.进一步地,所述按钮事件处理装置还包括:
35.取消单元,用于当所述异步回调事件执行完毕时,取消对所述按钮事件再次触发的阻塞。
36.进一步地,所述按钮事件处理装置还包括:
37.取消单元,用于在预设阻塞时长后,取消对所述按钮事件再次触发的阻塞;
38.第四判断单元,用于当检测到新异步事件时,判断所述异步回调事件是否执行完毕;
39.执行单元,用于当所述异步回调事件执行完毕时,执行所述新异步事件。
40.进一步地,所述按钮事件处理装置还包括:
41.收集单元,用于当所述异步回调事件执行完毕时,收集所述按钮事件的事件函数;
42.第五判断单元,用于判断所述事件函数中是否包括指定修饰符;
43.操作单元,用于当所述事件函数中包括所述指定修饰符时,基于所述指定修饰符进行相应操作。
44.进一步地,所述第二判断单元包括:
45.获取子单元,用于获取所述按钮事件的上次触发时间和当次触发时间;
46.计算子单元,用于计算所述上次触发时间和所述当次触发时间的触发时间差;
47.判断子单元,用于判断所述触发时间差是否大于预设的防重时间差;
48.确定子单元,用于当所述触发时间差大于所述防重时间差时,确定所述按钮事件未触发所述防重机制,并将所述当次触发时间确定为所述上次触发时间。
49.本技术实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例第一方面中任一项所述的按钮事件处理方法。
50.本技术实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例第一方面中任一项所述的按钮事件处理方法。
附图说明
51.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
52.图1为本技术实施例提供的一种按钮事件处理方法的流程示意图;
53.图2为本技术实施例提供的另一种按钮事件处理方法的流程示意图;
54.图3为本技术实施例提供的一种按钮事件处理装置的结构示意图;
55.图4为本技术实施例提供的另一种按钮事件处理装置的结构示意图。
具体实施方式
56.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
57.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
58.实施例1
59.请参看图1,图1为本实施例提供了一种按钮事件处理方法的流程示意图。其中,该按钮事件处理方法包括:
60.s101、当检测到按钮事件触发时,判断按钮事件是否处于禁用触发状态,若是,则结束本流程;若否,则执行步骤s102。
61.s102、判断按钮事件是否触发防重机制,若是,则结束本流程;若否,则执行步骤s103。
62.s103、判断该按钮事件是否为异步回调事件,若是,则执行步骤s104;若否,则结束本流程。
63.s104、阻塞按钮事件再次触发。
64.作为一种可选的实施方式,阻塞按钮事件再次触发的步骤之后,方法还包括:
65.在预设阻塞时长后,取消对按钮事件再次触发的阻塞;
66.当检测到新异步事件时,判断异步回调事件是否执行完毕;
67.当异步回调事件执行完毕时,执行新异步事件。
68.本实施例中,目前大部分团队都是做点击交互的防重,但不够完善,不够通用。不够完善体现在仅仅只是在间隔时间上做逻辑判断,而并不是真正的逻辑防重,比如某个点击事件逻辑处理需要消耗2秒钟,防重间隔是1秒;另一种情况是当点击后有异步操作时(如:调接口),这种情况下的逻辑耗时是无法确定的,接口有可能是1秒就响应了,网络差有可能就是3秒,这种情况仅仅靠点击间隔设置1秒是不合理也不能解决问题,同时如果间隔时间设置过长比如设置5秒,那对于页面交互体验又存在缺陷。不够通用主要体现在防重的逻辑在编码时的灵活性上,是直接在点击事件的回调方法里通过借助一个状态变量控制,这样处理虽然逻辑清晰,但对防重这一逻辑可以说完全无复用性。为了解决该种问题,本技术提出了该种按钮事件处理,具体为一种按钮事件防重方法。
69.本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
70.在本实施例中,该方法的执行主体还可以为智能手机、平板电脑等智能设备,对此本实施例中不作任何限定。
71.可见,实施本实施例所描述的按钮事件处理方法,能够在处理点击防重的场景上支持普通点击防重和异步防重,从而能够在根本上实现防重。同时,还能够更方便地实现接入,从而使得项目已有的点击事件方法可以再不需要改造的情况下直接使用,从而完善防重的效果。另外,该方法还可配合防重检测的loader可对项目中未使用防重指令的点击按钮做扫描,从而能够提前发现问题及时处理。
72.实施例2
73.请参看图2,图2为本实施例提供了一种按钮事件处理方法的流程示意图。其中,该按钮事件处理方法包括:
74.s201、当检测到按钮事件触发时,判断按钮事件是否处于禁用触发状态,若是,则结束本流程;若否,则执行步骤s202。
75.s202、获取按钮事件的上次触发时间和当次触发时间。
76.s203、计算上次触发时间和当次触发时间的触发时间差。
77.s204、判断触发时间差是否大于预设的防重时间差,若是,则执行步骤s205;若否,则结束本流程。
78.作为一种可选的实施方式,该方法还包括:
79.当触发时间差大于防重时间差时,确定按钮事件未触发防重机制,并将当次触发时间确定为上次触发时间。
80.s205、判断该按钮事件是否为异步回调事件,若是,则执行步骤s206;若否,则结束本流程。
81.s206、阻塞按钮事件再次触发。
82.阻塞按钮事件再次触发的步骤之后,方法还包括:
83.在预设阻塞时长后,取消对按钮事件再次触发的阻塞;
84.当检测到新异步事件时,判断异步回调事件是否执行完毕;
85.当异步回调事件执行完毕时,执行新异步事件。
86.s207、当异步回调事件执行完毕时,取消对按钮事件再次触发的阻塞。
87.s208、收集按钮事件的事件函数。
88.s209、判断事件函数中是否包括指定修饰符,若是,则执行步骤s210;若否,则结束本流程。
89.s210、基于指定修饰符进行相应操作。
90.本实施例中,该方法可以应用于金融领域中,具体分为两种情况。第一种是如果两次点击的间隔在设置的间隔时间内,若该次触发的异步事件早于时间间隔,则触发防重;若该次触发的异步事件晚于时间间隔,则会等待异步事件完成后才能再次点击。第二种,则是在两次点击的间隔在设置的间隔时间外,该次点击触发的是异步事件时,防重指令能够自动根据异步处理结束的时间来决定是否能够再次触发该事件。
91.本实施例中,针对目前防重存在不够完善和不够通用性的不足,结合目前vue团队的情况通过创建防重指令来弥补以上两个缺陷。防重指令在交互设计上修复了仅仅靠时间做点击防重的缺陷,同时做到能支持异步防重;在复用性上,对于vue项目的代码,使用时无需修改js事件回调的逻辑代码(异步情况下如果未返回promise,只需增加一行返回promise对象即可)。
92.举例来说,该方法的工作流程可以如下:
93.首先,该方法可以在vue项目中是通过全局混入的方式将防重指令集成到项目中直接使用的,从而在混入时可配置防重间隔时间和作用域(备用配置:用于识别业务场景)。
94.然后,该方法可以在页面点击某个按钮时,看按钮是否禁用状态,如果不是则判断本次点击与上一次点击的间隔时间(第一次则默认通过允许点击),如果时间间隔在设置之内则触发防重逻辑,本次点击无效。
95.当本次点击有效时,收集该次事件的回调方法和参数并保存起来,并将最后一次点击时间更新。接下来判断本次点击的回调是否为异步操作,如果是异步操作则标记按钮为异步阻塞状态。
96.最后,在执行回调后更新按钮为回调结束状态。再看按钮是否有其他修饰符,比如冒泡,如果有则阻止本次事件冒泡。
97.本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
98.在本实施例中,该方法的执行主体还可以为智能手机、平板电脑等智能设备,对此本实施例中不作任何限定。
99.可见,实施本实施例所描述的按钮事件处理方法,能够在处理点击防重的场景上支持普通点击防重和异步防重,从而能够在根本上实现防重。同时,还能够更方便地实现接入,从而使得项目已有的点击事件方法可以再不需要改造的情况下直接使用,从而完善防重的效果。另外,该方法还可配合防重检测的loader可对项目中未使用防重指令的点击按钮做扫描,从而能够提前发现问题及时处理。
100.实施例3
101.请参看图3,图3为本实施例提供的一种按钮事件处理装置的结构示意图。如图3所示,该按钮事件处理装置包括:
102.第一判断单元310,用于当检测到按钮事件触发时,判断按钮事件是否处于禁用触发状态;
103.第二判断单元320,用于当按钮事件不处于禁止触发状态时,判断按钮事件是否触发防重机制;
104.第三判断单元330,用于当按钮事件未触发防重机制时,判断该按钮事件是否为异步回调事件;
105.阻塞单元340,用于当按钮事件为异步回调事件时,阻塞按钮事件再次触发。
106.本实施例中,对于按钮事件处理装置的解释说明可以参照实施例1中的描述,对此本实施例中不再多加赘述。
107.可见,实施本实施例所描述的按钮事件处理装置,能够在处理点击防重的场景上支持普通点击防重和异步防重,从而能够在根本上实现防重。同时,还能够更方便地实现接入,从而使得项目已有的点击事件装置可以再不需要改造的情况下直接使用,从而完善防重的效果。另外,该装置还可配合防重检测的loader可对项目中未使用防重指令的点击按钮做扫描,从而能够提前发现问题及时处理。
108.实施例4
109.请参看图4,图4为本实施例提供的一种按钮事件处理装置的结构示意图。如图4所示,该按钮事件处理装置包括:
110.第一判断单元310,用于当检测到按钮事件触发时,判断按钮事件是否处于禁用触发状态;
111.第二判断单元320,用于当按钮事件不处于禁止触发状态时,判断按钮事件是否触发防重机制;
112.第三判断单元330,用于当按钮事件未触发防重机制时,判断该按钮事件是否为异步回调事件;
113.阻塞单元340,用于当按钮事件为异步回调事件时,阻塞按钮事件再次触发。
114.作为一种可选的实施方式,按钮事件处理装置还包括:
115.取消单元350,用于当异步回调事件执行完毕时,取消对按钮事件再次触发的阻塞。
116.作为一种可选的实施方式,按钮事件处理装置还包括:
117.取消单元350,用于在预设阻塞时长后,取消对按钮事件再次触发的阻塞;
118.第四判断单元360,用于当检测到新异步事件时,判断异步回调事件是否执行完毕;
119.执行单元370,用于当异步回调事件执行完毕时,执行新异步事件。
120.作为一种可选的实施方式,按钮事件处理装置还包括:
121.收集单元380,用于当异步回调事件执行完毕时,收集按钮事件的事件函数;
122.第五判断单元390,用于判断事件函数中是否包括指定修饰符;
123.操作单元400,用于当事件函数中包括指定修饰符时,基于指定修饰符进行相应操作。
124.作为一种可选的实施方式,第二判断单元320包括:
125.获取子单元321,用于获取按钮事件的上次触发时间和当次触发时间;
126.计算子单元322,用于计算上次触发时间和当次触发时间的触发时间差;
127.判断子单元323,用于判断触发时间差是否大于预设的防重时间差;
128.确定子单元324,用于当触发时间差大于防重时间差时,确定按钮事件未触发防重机制,并将当次触发时间确定为上次触发时间。
129.本实施例中,对于按钮事件处理装置的解释说明可以参照实施例1中的描述,对此本实施例中不再多加赘述。
130.可见,实施本实施例所描述的按钮事件处理装置,能够在处理点击防重的场景上支持普通点击防重和异步防重,从而能够在根本上实现防重。同时,还能够更方便地实现接入,从而使得项目已有的点击事件装置可以再不需要改造的情况下直接使用,从而完善防重的效果。另外,该装置还可配合防重检测的loader可对项目中未使用防重指令的点击按钮做扫描,从而能够提前发现问题及时处理。
131.本技术实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例1或实施例2中的按钮事件处理方法。
132.本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例1或实施例2中的按钮事件处理方法。
133.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
134.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
135.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
136.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和
字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
137.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
138.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
技术特征:
1.一种按钮事件处理方法,其特征在于,包括:当检测到按钮事件触发时,判断所述按钮事件是否处于禁用触发状态;当所述按钮事件不处于所述禁止触发状态时,判断所述按钮事件是否触发防重机制;当所述按钮事件未触发所述防重机制时,判断该按钮事件是否为异步回调事件;当所述按钮事件为所述异步回调事件时,阻塞所述按钮事件再次触发。2.根据权利要求1所述的按钮事件处理方法,其特征在于,所述阻塞所述按钮事件再次触发的步骤之后,所述方法还包括:当所述异步回调事件执行完毕时,取消对所述按钮事件再次触发的阻塞。3.根据权利要求1所述的按钮事件处理方法,其特征在于,所述阻塞所述按钮事件再次触发的步骤之后,所述方法还包括:在预设阻塞时长后,取消对所述按钮事件再次触发的阻塞;当检测到新异步事件时,判断所述异步回调事件是否执行完毕;当所述异步回调事件执行完毕时,执行所述新异步事件。4.根据权利要求1所述的按钮事件处理方法,其特征在于,所述阻塞所述按钮事件再次触发的步骤之后,所述方法还包括:当所述异步回调事件执行完毕时,收集所述按钮事件的事件函数;判断所述事件函数中是否包括指定修饰符;当所述事件函数中包括所述指定修饰符时,基于所述指定修饰符进行相应操作。5.根据权利要求1所述的按钮事件处理方法,其特征在于,所述判断所述按钮事件是否触发防重机制的步骤包括:获取所述按钮事件的上次触发时间和当次触发时间;计算所述上次触发时间和所述当次触发时间的触发时间差;判断所述触发时间差是否大于预设的防重时间差;当所述触发时间差大于所述防重时间差时,确定所述按钮事件未触发所述防重机制,并将所述当次触发时间确定为所述上次触发时间。6.一种按钮事件处理装置,其特征在于,所述按钮事件处理装置包括:第一判断单元,用于当检测到按钮事件触发时,判断所述按钮事件是否处于禁用触发状态;第二判断单元,用于当所述按钮事件不处于所述禁止触发状态时,判断所述按钮事件是否触发防重机制;第三判断单元,用于当所述按钮事件未触发所述防重机制时,判断该按钮事件是否为异步回调事件;阻塞单元,用于当所述按钮事件为所述异步回调事件时,阻塞所述按钮事件再次触发。7.根据权利要求6所述的按钮事件处理装置,其特征在于,所述按钮事件处理装置还包括:取消单元,用于当所述异步回调事件执行完毕时,取消对所述按钮事件再次触发的阻塞。8.根据权利要求6所述的按钮事件处理装置,其特征在于,所述按钮事件处理装置还包括:
取消单元,用于在预设阻塞时长后,取消对所述按钮事件再次触发的阻塞;第四判断单元,用于当检测到新异步事件时,判断所述异步回调事件是否执行完毕;执行单元,用于当所述异步回调事件执行完毕时,执行所述新异步事件。9.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行权利要求1至5中任一项所述的按钮事件处理方法。10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至5任一项所述的按钮事件处理方法。
技术总结
本申请提供一种按钮事件处理方法及装置,该方法包括:当检测到按钮事件触发时,判断按钮事件是否处于禁用触发状态;当按钮事件不处于禁止触发状态时,判断按钮事件是否触发防重机制;当按钮事件未触发防重机制时,判断该按钮事件是否为异步回调事件;当按钮事件为异步回调事件时,阻塞按钮事件再次触发。可见,实施这种实施方式,能够提高防重的效果,并使得针对按钮事件的防重方法具有一定的复用性。对按钮事件的防重方法具有一定的复用性。对按钮事件的防重方法具有一定的复用性。
