一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种移动端逻辑脚本执行方法及装置与流程

2022-02-20 20:35:12 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种移动端逻辑脚本执行方法及装置。


背景技术:

2.以往的手机app利用表单进行数据采集时,会对采集的数据进行逻辑处理等一系列操作,比如在采集到数据后进行逻辑处理,在数据提交前,判断数据是否在约定范围,是在约定范围内则进行数据提交,并关闭表单,否则提示错误,另一种方式是在打开表单时,进行某些数据的获取或更新。通常,这样的逻辑是利用硬编码在开发期间完成或利用js一类的动态编译语句,在后端开发后下发执行。但这些方法会造成开发人员以及测试人员重复介入类似或相似的业务开发及业务测试,从而导致效率低下,并且现有的方法业务逻辑只能在代码层面被抽象,没有业务属性,相似的业务场景难以复用。


技术实现要素:

3.本发明目的在于,提供一种移动端逻辑脚本执行方法及装置,以解决现有技术中开发效率低以及难以复用相似场景的问题。
4.为实现上述目的,本发明提供一种移动端逻辑脚本执行方法,包括:
5.接收ui触发控件事件的执行请求,其中,所述ui触发控件事件包括事件的对应编号文件,遍历所述ui触发控件事件中事件的对应编号文件获取相应的执行请求;
6.根据所述执行请求触发事件执行管理器,获取事件执行源;
7.根据所述事件执行源确定执行结果,所述执行结果包括同步执行结果和异步执行结果。
8.优选地,在根据所述执行请求触发事件执行管理器,获取事件执行源之后,还包括:
9.判断所述事件执行源是否被锁定;
10.若所述事件执行源包含锁定标记,则将所述事件执行源进行缓存,进入缓冲执行队列,执行所述事件执行源;
11.若所述事件执行源不包含锁定标记,则将所述事件执行源进行锁定确定执行事件,将所述执行事件输入缓存队列,释放所述事件执行源并执行。
12.优选地,在根据所述执行请求触发事件执行管理器,获取事件执行源之后,还包括:
13.获取所述事件执行源之后,若所述事件执行源包含强制中断标记,则清除所述缓存执行队列。
14.优选地,在根据所述执行请求触发事件执行管理器,获取事件执行源之后,还包括:
15.在判断所述事件执行源是否包含所述强制中断标记之后,若所述事件执行源不包含所述强制中断标记,则获取所述事件执行源的动态参数,根据所述动态参数计算所述事
件执行源是否被执行,若所述动态参数与所述事件执行源中预设的阈值不匹配则确定不需要被执行,若所述动态参数与所述事件执行源中预设的阈值匹配则确定需要被执行。
16.优选地,所述根据所述事件执行源确定执行结果,包括:
17.若所述执行结果为所述同步执行结果,则获取执行标记,继续执行下一个事件行为,直至执行结束;
18.若所述执行结果为所述异步执行结果,则将所述异步执行结果输入所述事件执行管理器,获取相应的执行行为,直至执行结束。
19.本发明还提供一种移动端逻辑脚本执行装置,包括:
20.获取模块,用于接收ui触发控件事件的执行请求,其中,所述ui触发控件事件包括事件的对应编号文件,遍历所述ui触发控件事件中事件的对应编号文件获取相应的执行请求;
21.触发模块,用于根据所述执行请求触发事件执行管理器,获取事件执行源;
22.执行模块,用于根据所述事件执行源确定执行结果,所述执行结果包括同步执行结果和异步执行结果。
23.优选地,还包括触发子模块,用于:
24.判断所述事件执行源是否被锁定;
25.若所述事件执行源包含锁定标记,则将所述事件执行源进行缓存,进入缓冲执行队列,执行所述事件执行源;
26.若所述事件执行源不包含锁定标记,则将所述事件执行源进行锁定确定执行事件,将所述执行事件输入缓存队列,释放所述事件执行源并执行。
27.优选地,所述触发子模块,还用于:
28.获取所述事件执行源之后,若所述事件执行源包含强制中断标记,则清除所述缓存执行队列。
29.优选地,所述触发子模块,还用于:
30.在判断所述事件执行源是否包含所述强制中断标记之后,若所述事件执行源不包含所述强制中断标记,则获取所述事件执行源的动态参数,根据所述动态参数计算所述事件执行源是否被执行,若所述动态参数与所述事件执行源中预设的阈值不匹配则确定不需要被执行,若所述动态参数与所述事件执行源中预设的阈值匹配则确定需要被执行。
31.优选地,所述执行模块,还用于:
32.若所述执行结果为所述同步执行结果,则获取执行标记,继续执行下一个事件行为,直至执行结束;
33.若所述执行结果为所述异步执行结果,则将所述异步执行结果输入所述事件执行管理器,获取相应的执行行为,直至执行结束。
34.相对于现有技术,本发明的有益效果在于:
35.接收ui触发控件事件的执行请求,其中,ui触发控件事件包括事件的对应编号文件,遍历ui触发控件事件中事件的对应编号文件获取相应的执行请求,根据执行请求触发事件执行管理器,获取事件执行源,根据事件执行源确定执行结果,执行结果包括同步执行结果和异步执行结果。测试人员在工作的过程中只需要测试获取执行请求与获取事件执行源的行为,不用针对具体场景进行测试,开发人员也无需针对每个场景进行编码开发,提高
了开发的效率。
附图说明
36.为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1是本发明某一实施例提供的移动端逻辑脚本执行方法的流程示意图;
38.图2是本发明另一实施例提供的初始执行的流程示意图;
39.图3是本发明又一实施例提供的生成行为注册器的流程示意图;
40.图4是本发明某一实施例提供的生成事件执行源的流程示意图;
41.图5是本发明另一实施例提供的释放事件执行源的流程示意图;
42.图6是本发明又一实施例提供的包含强制中断标记的执行方法的流程示意图;
43.图7是本发明某一实施例提供的判断该行为是否需要执行的流程示意图;
44.图8是本发明某一实施例提供的执行结果图;
45.图9是本发明另一实施例提供的同步执行方法的流程示意图;
46.图10是本发明某一实施例提供的异步执行方法的流程示意图;
47.图11是本发明又一实施例提供的移动端逻辑脚本执行装置的结构示意图。
具体实施方式
48.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
50.应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
51.术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
52.术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
53.请参阅图1,本发明某一实施例提供一种移动端逻辑脚本执行方法,包括以下步骤:
54.s101:接收ui触发控件事件的执行请求,其中,所述ui触发控件事件包括事件的对应编号文件,遍历所述ui触发控件事件中事件的对应编号文件获取相应的执行请求。
55.具体的,app在进行ui操作时,在ui触发控件事件中查找相应的编号文件获取执行请求,关于事件的描述,采用eventcode进行时间编号,successtip执行事件成功后的提示信息,jump字段判断是否需要跳过该时间的执行,actioncodes为描述行为,一个事件下可
以有多个不同类型的行为。关于行为的描述,采用actioncode进行行为编号,failtip进行执行失败时提示的信息,同样的采用jump字段判断是否跳过该行为,最后输出type行为的类型。
56.请参阅图2,在app初始化时,会进行逻辑脚本结构定义文件下载及不同行为的具体执行对象元数据注册,逻辑脚本结构定义文件会被批量下载到本地保存,进入app后确定是否是首次使用,若是,则采用服务端全量下载,若否,采用服务端增量下载,最后均保存更新时间及以事件编号为文件名保存文件。
57.s102:根据所述执行请求触发事件执行管理器,获取事件执行源。
58.具体的,请参阅图3,注册执行器元数据,通过数据提交行为执行器元数据以及返回交行为执行器元数据,以type作为key,注册进行为注册器。
59.请参阅图4,app在进行ui操作时,ui控件的事件根据编码时已关联的事件编码到指定文件夹目录找到对应编号的文件,把文件内容读入事件执行管理器,形成事件,事件执行管理器开始处理,读入过程如下:
60.a.点击ui触发控件事件。
61.b.取出硬编码时的事件编号,并传入事件执行源管理器。
62.c.已加载过事件文件,若已加载,从内存中取出结构文件内容,否则在本地读取加载并缓存。
63.d.将该事件进入事件执行源管理器,获取事件执行源。
64.请参阅图5,由于ui界面上有多个控件,不同的控件关联不同的事件编号,并且用户可能多次触发不同或相同的控件事件,因此,在事件执行前,先判断事件执行管理器中的事件执行源是否已经被锁定,若果是,当前事件所触发的事件,会被先缓存起来,等待正在执行的事件执行完毕后再执行,控件触发的事件会被马上返回,事件管理器中当前事件执行完后,会查看缓冲队列中是否有未被执行的事件,有则继续执行,直至清空队列,否则返回
65.判断事件执行源是否被锁定,若事件执行源包含锁定标记,则将事件执行源进行缓存,进入缓冲执行队列,执行事件执行源,若事件执行源不包含锁定标记,则将事件执行源进行锁定确定执行事件,将执行事件输入缓存队列,释放事件执行源并执行。
66.请参阅图6,在事件执行的过程中,会判断事件管理器是否收到强制中断标记。因为在执行的过程中,控件所在的界面,有可能被用户通过返回的方式进行销毁,若果界面被销毁,那么对应的控件对应的事件也无需被执行,同时,缓冲队列中的事件也无需被执行,直接清空退出。
67.请参阅图7,控件的事件在投递事件时候,会附带一些动态参数,用于在执行的过程中被用于jump字段计算事件或行为是否需要真实执行,这些参数会被存在于当前全局参数缓存中等待被使用,强制中断标记判断完后,是进行jump字段计算。根据当前上下文情况判断事件是否需要真正执行,若事件真正需要被执行,则开始循环执行每个行为。
68.在判断事件执行源是否包含所述强制中断标记之后,若事件执行源不包含强制中断标记,则获取事件执行源的动态参数,根据动态参数计算事件执行源是否被执行,若动态参数与事件执行源中预设的阈值不匹配则确定不需要被执行,若动态参数与事件执行源中预设的阈值匹配则确定需要被执行。
69.事件及行为中,jump字段用于描述该事件或行为,经过计算够,是否需要被实际执行,其描述的关键字如表1所示。
70.表1关键字定义
71.变量¥[param]集合in()范围between()条件判断when{}then{}值比较>,>=,=<,<,==,!=逻辑条件&&,||查找find类型转换toi(),tos()
ꢀꢀ
[0072]
其中,表1中的变量值的来源是内存中保存的临时键值对表单中各控件存储于内存中的值,采用jump字段中的参数方式进行举例说明,如下:
[0073]
1)参数1大于等于10且参数2的值等于字符串“ok”时跳过该事件或行为。
[0074]
$[param1]》=10&&$[param2]==

ok’。
[0075]
2)参数1的值符合10,20,30三个中一个或参数2的值的范围在50至100之间时跳过该事件或行为。
[0076]
$[param1]in(10,20,30)||$[param2]between(50,100)。
[0077]
3)当参数1包含字符串”100”时,提取出“100”字符串并转换为整数类型,并判断该值是否在参数2与参数3之间。
[0078]
when{$[param1].find(’100’)}then{$[param1].find(’100’).toi()between($[param2],$[param3])}。
[0079]
行为在执行方式上分为两类:同步行为与异步行为。用于区别在执行过程中是否开启新线程,通过具体类型在执行中进行判别,每种行为有各自对应业务的描述方式,比如:
[0080][0081][0082]
以上逻辑结构通过专用的事件行为编辑器生成,并保存与服务器中,开发人员可以通过复用事件code,直接在开发过程中通过硬编码的方式,把ui控件的事件与事件执行的逻辑关联起来,在行为编辑界面,可以通过拖拽预定义的行为到指定区域,并在相应的属性编辑中选不同的行为,在指定的区域呈现不同的编辑选项。
[0083]
s103:根据所述事件执行源确定执行结果,所述执行结果包括同步执行结果和异步执行结果。
[0084]
具体的,若执行结果为同步执行结果,则获取执行标记,继续执行下一个事件行为,直至执行结束,若执行结果为异步执行结果,则将异步执行结果输入事件执行管理器,获取相应的执行行为,直至执行结束。
[0085]
请参阅图8,事件执行管理器在迭代事件中的行为时,也需要对强制中断标记判断和jump字段进行计算,迭代的过程中,对于不同的行为类型,事件管理器从行为注册器中,根据当前的行为类型取出对应的行为执行器元数据,并实例化,把行为结构数据交给对应的行为执行器处理。行为对事件执行管理器来说是抽象的,事件执行管理器并不清楚行为的内部逻辑处理,但知道该行为是应该以同步的方式执行或异步的方式进行后继执行。同步还是异步,依据行为的执行返回结果进行判断。
[0086]
请参阅图9,若返回的结果是同步执行结果,则该行为是同步执行的,此时,取出执
行标记,若是成功标记,继续执行下一个行为,否则,根据行为配置的failtip字段进行错误提示,并且退出循环执行,忽略后继行为。
[0087]
请参阅图10,若返回是异步执行结果,当前行为所在的线程的逻辑会被退出,但事件执行管理器中事件执行源标记不会被清空,异步行为内部开启线程继续执行,并返回异步行为结果,事件管理器会把异步行为结果及同余下的行为,单独保存至事件管理器,异步行为结果除保存于事件管理器外,还保存于新开启的线程,用于通知行为的执行结果,行为执行完成后,会通过异步行为结果接收通知,重新进入事件管理器,此时,事件管理器不会对事件进行判断处理,而是直接对余下行为继续处理,处理的逻辑与进行异步返回前无异。
[0088]
本发明接收ui触发控件事件的执行请求,其中,ui触发控件事件包括事件的对应编号文件,遍历ui触发控件事件中事件的对应编号文件获取相应的执行请求,根据执行请求触发事件执行管理器,获取事件执行源,根据事件执行源确定执行结果,执行结果包括同步执行结果和异步执行结果。测试人员在工作的过程中只需要测试获取执行请求与获取事件执行源的行为,不用针对具体场景进行测试,开发人员也无需针对每个场景进行编码开发,提高了开发的效率。
[0089]
开发人员无需关注不同的业务场景逻辑是如何编写,如何被执行,只要按需要在可视化界面上进行编辑脚本即可,测试人员无需重复对业务场景逻辑代码重复测试,只要关注脚本能否产生预期的业务效果即可,业务场景被抽象分解为不同的行为,不同的业务场景,能利用有限的行为解决,交付效率和app稳定得到提高。
[0090]
请参阅图11,本发明另一实施例提供一种移动端逻辑脚本执行装置,包括:
[0091]
获取模块11,用于接收ui触发控件事件的执行请求,其中,所述ui触发控件事件包括事件的对应编号文件,遍历所述ui触发控件事件中事件的对应编号文件获取相应的执行请求。
[0092]
触发模块12,用于根据所述执行请求触发事件执行管理器,获取事件执行源。
[0093]
执行模块13,用于根据所述事件执行源确定执行结果,所述执行结果包括同步执行结果和异步执行结果。
[0094]
关于移动端逻辑脚本执行装置的具体限定可以参见上文中对于移动端逻辑脚本执行方法的限定,在此不再赘述。上述移动端逻辑脚本执行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0095]
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献