获取动态数据的方法及装置、计算机可读存储介质与流程

文档序号:29627383发布日期:2022-04-13 14:51阅读:87来源:国知局
获取动态数据的方法及装置、计算机可读存储介质与流程

1.本发明涉及互联网技术领域,尤其涉及一种获取动态数据的方法及装置、计算机可读存储介质。


背景技术:

2.随着互联网的不断发展,web页面变得越来越重要,在前端不断的发展过程中,各种技术栈所对应的社区变得越来越繁荣,为了减少开发者的工作,业界研发了很多低代码平台,极大的提高了前端开发者的工作效率。
3.但是这些平台目前在动态数据处理都有一定的缺陷,一方面,数据源参数配置不灵活,不支持动态参数配置。另一方面,在页面渲染阶段,存在同一数据源多次调用等问题。


技术实现要素:

4.本发明实施例提供了一种获取动态数据的方法及装置、计算机可读存储介质,提升了动态数据源配置的灵活性,且减少了同一数据源的调用次数。
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.图1为本发明实施例提供的一种获取动态数据的方法的流程示意图一;
50.图2为本发明实施例提供的一种获取动态数据的方法的流程示意图二;
51.图3为本发明实施例提供的一种获取动态数据的方法的流程示意图三;
52.图4为本发明实施例提供的一种获取动态数据的方法的流程示意图四;
53.图5为本发明实施例提供的一种获取动态数据的方法的流程示意图五;
54.图6为本发明实施例提供的一种获取动态数据的方法的流程示意图六;
55.图7为本发明实施例提供的一种获取动态数据的方法的流程示意图七;
56.图8为本发明实施例提供的一种获取动态数据的装置的结构示意图一;
57.图9为本发明实施例提供的一种获取动态数据的装置的结构示意图二。
具体实施方式
58.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
59.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式
对本发明作进一步的详细说明。图1为本发明实施例提供的一种获取动态数据的方法的流程示意图一,将结合图1示出的步骤进行说明。
60.s101、遍历页面的组件配置的所有由父级传给子级的数据的类型值。
61.在本发明实施例中,遍历页面的组件配置的所有由父级传给子级的数据的类型值,通过获取的类型值进行后续操作。
62.在本发明实施例中,组件中父级要正向地向子级传递数据或参数,子级收到后,根据传递过来的数据不同,渲染不同的页面内容,或者执行操作,这个正向传递数据的过程是通过props来实现的,子级使用props来声明需要从父级接受的数据。
63.s102、根据类型值,确定出多个动态数据源中存在动态参数配置的目标动态数据源,对目标动态数据源的数据进行收集。
64.在本发明实施例中,获取到类型值后,根据获取的类型值,确定多个动态数据源中存在动态参数配置的目标动态数据源,对存在动态参数配置的目标动态数据源进行收集。
65.在本发明实施例中,数据源(datasource)顾名思义,数据的来源,是提供某种所需要数据的器件或原始媒体,在数据源中存储了所有建立数据库连接的信息。就像通过指定文件名称可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。
66.在本发明实施例中,动态数据源一般指spring动态配置多数据源,动态数据源中可以配置动态参数,也可以配置静态参数。
67.在本发明实施例中,可以通过json-scheam规范数据源模型,如:可以通过config字段来配置数据源基本信息,param支持嵌套配置,通过data字段来规范接口返回字段,通过type字段来识别是否为动态数据源配置,可以从配置的数据源的基本信息判别对应的数据源是否为动态数据源。props type的类型包括:string、number、boolean、array及object等。
68.s103、利用收集的目标动态数据源的数据,实现页面的动态数据的更新。
69.在本发明实施例中,收集到目标动态数据源后,利用该目标动态数据源的数据,完成对页面的动态数据的更新。
70.可以理解的是,在本发明实施例中,通过遍历组件配置的所有由父级传给子级的数据的类型值,确定动态数据源中是否存在动态参数配置,若存在的话,将该动态数据源进行收集,并利用收集到的动态数据源,实现页面的动态数据的更新。这样使得动态数据源的配置变得更加灵活,且减少了同一数据源的调用次数。
71.在本发明的一些实施例中,参见图2,图2是本发明实施例提供的一种获取动态数据的方法的流程示意图二,图2示出的s102可以通过s1021至s1024实现,将结合图2示出的步骤进行说明。
72.s1021、根据类型值,从数据源库中,确定具有动态数据源配置的多个动态数据源;多个动态数据源分别对应各自的唯一标识。
73.在本发明的一些实施例中,遍历组件配置的所有props后,根据类型值,从数据源库中,识别动态数据源配置,并为识别到的多个动态数据源各自分配唯一的标识。
74.在本发明的一些实施例中,数据源库中包括动态数据源和静态数据源,为多个动态数据源分配的标识可以为id,本发明不做限制。
75.s1022、获取多个动态数据源各自的参数配置,通过遍历多个动态数据源各自的参数配置,确定与多个动态数据源一一对应的多个参数配置类型。
76.在本发明的一些实施例中,在数据源库中找到多个动态数据源后,获取该多个动态数据源各自的参数配置信息,根据参数配置信息,确定该多个动态数据源各自对应的参数配置类型。
77.在本发明的一些实施例中,动态数据源中可以配置静态参数,也可以配置动态参数。
78.s1023、根据多个参数配置类型,基于多个动态数据源,确定目标动态数据源。
79.在本发明的一些实施例中,根据多个动态数据源的参数配置类型,在多个动态数据源中确定目标动态数据源。
80.在本发明的一些实施例中,动态数据源的参数配置可以为动态参数配置,也可以为静态参数配置,确定的目标动态数据源的参数为动态参数配置。
81.s1024、对目标动态数据源的数据进行收集。
82.在本发明的一些实施例中,在多个动态数据源中确定到目标动态数据源后,对获取的目标动态数据源进行收集。
83.在本发明的一些实施例中,利用收集到的目标动态数据源完成页面的动态数据源的更新。
84.可以理解的是,在本发明的一些实施例中,根据类型值,从数据源库中获取多个动态数据源后,为获取的动态数据源分配唯一标识,并根据动态数据源的参数配置,在多个动态数据源中,获取所需的目标动态数据源,使得动态数据源可以支持动态参数配置,提升了配置的灵活性。
85.在本发明的一些实施例中,s1023可以通过s1023a实现,将结合步骤进行说明。
86.s1023a、若多个参数配置类型中存在响应式数据配置类型,则将多个动态数据源中与响应式数据配置类型对应的动态数据源,确定为目标动态数据源。
87.在本发明的一些实施中,遍历多个动态数据源的参数配置类型,若存在某个动态数据源的参数配置类型为响应式数据配置类型,那么将与响应式数据配置类型对应的该动态数据源,确定为目标动态数据源。
88.在本发明的一些实施例中,s1023可以通过s1023b实现,将结合步骤进行说明。
89.1023b、若多个参数配置类型中存在子动态数据源配置类型,则遍历多个父动态数据源中各自与子动态数据源配置类型对应的子动态数据源的子参数配置,基于子参数配置的子参数配置类型,继续进行参数配置类型判断,直至确定出具有响应式数据配置类型的子参数配置类型对应的父动态数据源;将父动态数据源和父动态数据源中的子动态数据源配置类型对应的子动态数据源均作为目标动态数据源;多个父动态数据源是多个动态数据源中与子动态数据源配置类型对应的数据源。
90.在本发明的一些实施例中,遍历多个动态数据源的参数配置类型,若存在某个动态数据源的参数配置类型为子动态数据源配置类型,那么继续遍历与子动态数据源配置类型对应的子动态数据源的子参数配置,根据子参数配置的子参数配置类型,继续进行参数配置类型判断,直到找出具有响应式数据配置类型的子参数配置类型对应的父动态数据源,然后将父动态数据源和父动态数据源中的子动态数据源配置类型对应的子动态数据源
均作为目标动态数据源。
91.在本发明的一些实施例中,若存在动态数据源a和动态数据源b,动态数据源b的参数配置类型为子动态数据源配置类型,那么继续遍历与该子动态数据源配置类型对应的子动态数据源c的子参数配置类型,如果子动态数据源c的参数配置类型为响应式数据配置类型,则将子动态数据源c和子动态数据源c的父动态数据源b均作为目标动态数据源,如果子动态数据源c的参数配置类型依然为动态数据源类型,基于该动态数据源的参数配置类型,继续进行参数配置类型判断,直至确定出具有响应式数据配置类型的子参数配置类型对应的父动态数据源,然后将父动态数据源和父动态数据源中的子动态数据源配置类型对应的子动态数据源均作为目标动态数据源。
92.在本发明的一些实施例中,参见图3,图3是本发明实施例提供的一种获取动态数据的方法的流程示意图三,图3示出的s1024可以通过s1024a至s1024d实现,将结合图3示出的步骤进行说明。
93.s1024a、将目标动态数据源和目标动态数据源的参数标识保存到预设的响应式参数数据源映射表。
94.在本发明的一些实施例中,获取到目标动态数据源后,将该目标动态数据源和目标动态数据源的参数标识保存到初始的响应式参数数据源映射表(observersourcemap)中。
95.在本发明的一些实施例中,参数标识可以为参数的名字。
96.s1024b、将响应式参数数据源映射表中的目标动态数据源的数据进行包装,确定可观察对象。
97.在本发明的一些实施例中,将响应式参数数据源映射表中保存的目标动态数据源的数据进行包装,确定可观察对象。
98.在本发明的一些实施例中,将目标动态数据源的数据经过包装成为一个对象,比如数据是1和2,将这个数据包装为{a:1,b:2}这种对象,然后这个对象可以成为observer对象。
99.s1024c、将目标动态数据源对应的组件的监听函数封装到可观察对象,确定封装后的可观察对象。
100.在本发明的一些实施例中,将目标动态数据源对应的forceupdate这个更新组件的监听函数封装到可观察的对象中,获取封装后的可观察对象。
101.在本发明的一些实施例中,将forceupdate这个更新组件的监听函数封装到可观察的对象后,这个对象就为{a:1,b:2,函数:forceupdate}。
102.s1024d、将封装后的可观察对象保存到预设的组件数据源映射表中,完成收集。
103.在本发明的一些实施例中,将封装后的可观察对象保存到初始的组件数据源映射表(datasourcemap)中,直到处理完组件props里面配置的所有动态数据源,完成收集。
104.在本发明的一些实施例中,组件数据源映射表(datasourcemap)的结构可以为{map1:{a:1,b:2,函数:forceupdate},

mapn}。
105.可以理解的是,在本发明的一些实施例中,将目标动态数据源和目标动态数据源的参数标识保存到预设的响应式参数数据源映射后进行包装,确定可观察对象;将目标动态数据源对应的组件的监听函数封装到所述可观察对象,确定封装后的可观察对象;最后
保存到预设的组件数据源映射表中,完成收集。这使得动态数据源配置更加灵活,支持动态参数配置,进而使得实现了页面的动态数据的更新。
106.在本发明的一些实施例中,参见图4,图4是本发明实施例提供的一种获取动态数据的方法的流程示意图四,图4示出的s1024可以通过s1024e至s1024j实现,将结合图4示出的步骤进行说明。
107.s1024e、利用携带的父动态数据源自身的唯一标识,和多个动态数据源各自的唯一标识进行匹配,确定子动态数据源的父动态数据源,其中,父动态数据源中的子参数配置类型对应的子动态数据源携带自身唯一标识和父动态数据源自身的唯一标识。
108.在本发明的一些实施例中,因为父动态数据源中的子参数配置类型对应的子动态数据源不仅携带自身唯一标识,而且携带父动态数据源自身的唯一标识,所以可以通过携带的父动态数据源自身的唯一标识,和多个动态数据源各自的标识进行匹配,找到子动态数据源对应的父动态数据源。
109.s1024f、将子动态数据源的自身唯一标识存储在父动态数据源下的数据中,得到存储后的父动态数据源。
110.在本发明的一些实施例中,确定对应的父动态数据源后,将子动态数据源自身的唯一标识存储在父动态数据源下的数组中。
111.在本发明的一些实施例中,父动态数据源会定义一个childdatasource数组变量,然后将子动态数据源自身的唯一标识存储在该数组中。
112.s1024g、将存储后的父动态数据源、存储后的父动态数据源的参数标识和子动态数据源、子动态数据源的参数标识保存到预设的响应式参数数据源映射表。
113.在本发明的一些实施例中,如果某个动态数据源的参数配置类型为子动态数据源配置类型后,根据s1023b一样,最后确定出具有响应式数据配置类型的子参数配置类型对应的父动态数据源,然后找出父动态数据源中的子动态数据源配置类型对应的子动态数据源,将存储后的父动态数据源和子动态数据源均作为目标动态数据源,最后将存储后的父动态数据源、存储后的父动态数据源的参数标识和子动态数据源、子动态数据源的参数标识保存到响应式参数数据源映射表(observersourcemap)中。
114.s1024h、将所述响应式参数数据源映射表中存储后的目标动态数据源的数据进行包装,确定可观察对象。
115.在本发明的一些实施例中,将响应式参数数据源映射表中的目标动态数据源的数据进行包装,确定可观察对象。
116.在本发明的一些实施例中,该步骤和s1024b类似,这里不再说明。
117.s1024i、将存储后的目标动态数据源对应的组件的监听函数封装到可观察对象,确定封装后的可观察对象。
118.在本发明的一些实施例中,将目标动态数据源对应的forceupdate这个更新组件的监听函数封装到可观察的对象中,获取封装后的可观察对象。
119.在本发明的一些实施例中,该步骤和s1024c类似,这里不再说明。
120.s1024j、将封装后的可观察对象保存到预设的组件数据源映射表中,完成收集。
121.在本发明的一些实施例中,将封装后的可观察对象保存到初始的组件数据源映射表(datasourcemap)中,直到处理完组件props里面配置的所有动态数据源,完成收集。
122.在本发明的一些实施例中,该步骤和s1024d类似,这里不再说明。
123.在本发明的一些实施例中,参见图5,图5是本发明实施例提供的一种获取动态数据的方法的流程示意图五,图5示出的s103可以通过s1031至s1034实现,将结合图5示出的步骤进行说明。
124.s1031、将预设的组件数据源映射表中的多个目标动态数据源的数据进行序列化,得到相应的多个字符串。
125.在本发明的一些实施例中,将组件数据源映射表中的多个目标动态数据源的数据进行序列化后,得到相应的多个字符串。
126.在本发明的一些实施例中,序列化是将对象的状态信息转换为可以存储或传输的形式的过程,在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
127.s1032、利用多个字符串之间的比较进行去重,确定去重后的多个目标动态数据源。
128.在本发明的一些实施例中,由s1031得到多个对应的字符串后,将多个字符串进行比较,然后去重,得到去重后的目标动态数据源。
129.s1033、利用预设算法对去重后的多个目标动态数据源排序,确定排序后的结果。
130.在本发明的一些实施例中,利用预设的算法对去重后的多个数据源进行排序,确定排序后的结果。
131.在本发明的一些实施例中,卡恩算法为从无输入的顶点入手,删除所有从这个顶点出发的边,重复这个动作直到没有边为止,先前顶点的遍历顺序即为拓扑排序。可以利用卡恩算法对去重后的多个数据源进行排序,本发明不做限制。
132.s1034、根据排序后的结果,实现页面的动态数据的更新。
133.在本发明的一些实施例中,利用排序后的结果,实现页面的动态数据的更新。
134.可以理解的是,在本发明的一些实施例中,对目标动态数据源收集以后,再进行去重和排序,使得在页面渲染时,能减少同一数据源的调用次数,实现了页面的动态数据的更新。
135.在本发明的一些实施例中,参见图6,图6是本发明实施例提供的一种获取动态数据的方法的流程示意图六,图6示出的s1034可以通过s10341至s10342实现,将结合图6示出的步骤进行说明。
136.s10341、根据排序后的结果,结合页面上所需数据的请求,对可观察对象进行赋值,确定赋值结果。
137.在本发明的一些实施例中,根据拓扑排序后的结果,结合页面上所需数据的请求,对可观察对象进行赋值,确定赋值结果。
138.在本发明的一些实施例中,将多个动态数据源中的数据进行排序后,按照这个排序把页面上所需的数据依次发送网络请求,请求对应的数据,请求数据后,再根据刚才封装的对象,一一对应赋值。
139.s10342、若可观察对象包含监听函数,则利用赋值结果,实现页面动态数据的更新。
140.在本发明的一些实施例中,如果可观察对象包含监听函数,则利用赋值结果,实现
页面的动态数据的更新。
141.在本发明的一些实施例中,如果observer对象为{a:1,b:2,函数:forceupdate}或者{a:1,b:2,函数:null},有这个forceupdate监听函数就更新,没有就不执行更新,这样页面的数据就会动态的更新或者不更新了。
142.可以理解的是,在本发明的实施例中,目前低代码平台在动态数据处理时存在动态数据源配置不灵活,不支持动态参数配置,比如url hash传参等,且页面下多个组件配置的动态数据源存在冗余,在页面渲染阶段存在多次调用的情况,前端性能比较差。本发明通过优化数据源配置模型和引入响应式编程,提升了动态数据源的配置的灵活性,且减少了同一数据源的调用次数。
143.本发明实施例提供了一种获取动态数据的方法,具体步骤如下:
144.数据源收集阶段:
145.s1、在组件初始化阶段,判断是否有传入datasourcemap(组件数据源映射列表),observersourcemap(响应式参数数据源映射列表),如果没有,则初始化以上两个变量。
146.s2、遍历组件配置的所有props,通过type值为dynimic来识别动态数据源配置,并为识别到的动态数据源分配唯一的id。
147.s3、遍历动态数据源param配置,根据param的type来识别param配置的类型,并分别处理。
148.s4、如果param type为hash等动态变化的数据类型,则收集对应的name和数据源信息保存到observersourcemap中。
149.s5、如果param type类型为dynimic动态数据源类型,则按照2-6步骤处理param数据源配置信息。
150.s6、参数数据源分析完成后,将当前参数配置的数据源id,插到父数据源childdatasource字段下。
151.s7、参数处理完成后,包装数据源返回数据data字段为observer(可观察)对象,并绑定当前组件的forceupdate函数为监听函数,并保存当前数据源到到datasourcemap中。
152.s8、循环执行1-8步骤,直到处理完组件props里面配置的所有动态数据源。
153.本发明实施例提供了一种获取动态数据的方法,可选的流程图如图7所示,具体步骤如下:
154.数据源执行阶段:
155.s11、初始化页面变量datasourcemap(组件数据源映射列表),observerso-urcemap响应式参数数据源映射列表)。
156.s12、遍历页面下所有组件列表。
157.s13、注入datasourcemap、observersourcemap。
158.s14、收集当前组件数据源列表。
159.s15、若有未收集数据源的组件,执行s12,否则执行s16。
160.s16、datasourcemap根据配置json序列化去重。
161.s17、采用卡恩算法对当前页面配置的数据进行排序。
162.s18、根据顺序并行调用所有数据源返回后赋值observer对象。
163.s19、根据observer变化,触发组件重新渲染。
164.可以理解的是,在本发明的实施例中,目前低代码平台在动态数据处理时存在动态数据源配置不灵活,不支持动态参数配置,比如url hash传参等,且页面下多个组件配置的动态数据源存在冗余,在页面渲染阶段存在多次调用的情况,前端性能比较差。本发明通过优化数据源配置模型和引入响应式编程,提升了动态数据源的配置的灵活性,且减少了同一数据源的调用次数。
165.本发明实施例提供了一种获取动态数据的装置结构示意图,如图8所示,该获取动态数据的装置包括:遍历单元801、收集单元802、更新单元803;其中,
166.所述遍历单元801、用于遍历页面的组件配置的所有由父级传给子级的数据的类型值。
167.所述收集单元802、用于根据所述类型值,确定出多个动态数据源中存在动态参数配置的目标动态数据源,对所述目标动态数据源的数据进行收集。
168.所述更新单元803,用于利用收集的所述目标动态数据源的数据,实现页面的动态数据的更新。
169.在本发明的一些实施例中,所述收集单元802、还用于根据所述类型值,从数据源库中,确定具有动态数据源配置的所述多个动态数据源;所述多个动态数据源分别对应各自的唯一标识;及获取所述多个动态数据源各自的参数配置,通过遍历所述多个动态数据源各自的参数配置,确定与所述多个动态数据源一一对应的多个参数配置类型;及根据所述多个参数配置类型,基于所述多个动态数据源,确定所述目标动态数据源;以及对所述目标动态数据源的数据进行收集。
170.在本发明的一些实施例中,所述收集单元802,还用于若所述多个参数配置类型中存在响应式数据配置类型,则将所述多个动态数据源中与所述响应式数据配置类型对应的动态数据源,确定为所述目标动态数据源。
171.在本发明的一些实施例中,所述收集单元802,还用于若所述多个参数配置类型中存在子动态数据源配置类型,则遍历多个父动态数据源中各自与所述子动态数据源配置类型对应的子动态数据源的子参数配置,基于所述子参数配置的子参数配置类型,继续进行参数配置类型判断,直至确定出具有响应式数据配置类型的子参数配置类型对应的父动态数据源;将所述父动态数据源和所述父动态数据源中的子动态数据源配置类型对应的子动态数据源均作为所述目标动态数据源;所述多个父动态数据源是所述多个动态数据源中与子动态数据源配置类型对应的数据源。
172.在本发明的一些实施例中,所述收集单元802,还用于将所述目标动态数据源和所述目标动态数据源的参数标识保存到预设的响应式参数数据源映射表;及将所述响应式参数数据源映射表中的目标动态数据源的数据进行包装,确定可观察对象;及将所述目标动态数据源对应的组件的监听函数封装到所述可观察对象,确定封装后的可观察对象;以及将所述封装后的可观察对象保存到预设的组件数据源映射表中,完成收集。
173.在本发明的一些实施例中,所述父动态数据源中的子参数配置类型对应的子动态数据源携带自身唯一标识和父动态数据源自身的唯一标识;所述收集单元802,还用于利用携带的所述父动态数据源自身的唯一标识,和多个所述动态数据源各自的唯一标识进行匹配,确定所述子动态数据源的父动态数据源;及将所述子动态数据源的自身唯一标识存储在所述父动态数据源下的数据中,得到存储后的父动态数据源;及将所述存储后的父动态
数据源、存储后的父动态数据源的参数标识和所述子动态数据源、子动态数据源的参数标识保存到所述预设的响应式参数数据源映射表;及将所述响应式参数数据源映射表中存储后的目标动态数据源的数据进行包装,确定可观察对象;及将所述存储后的目标动态数据源对应的组件的监听函数封装到所述可观察对象,确定封装后的可观察对象;以及将所述封装后的可观察对象保存到预设的组件数据源映射表中,完成收集。
174.在本发明的一些实施例中,所述更新单元803,还用于将所述预设的组件数据源映射表中的多个所述目标动态数据源的数据进行序列化,得到相应的多个字符串;及利用所述多个字符串之间的比较进行去重,确定去重后的多个所述目标动态数据源;及利用预设算法对所述去重后的多个所述目标动态数据源排序,确定排序后的结果;以及根据所述排序后的结果,实现页面的动态数据的更新。
175.在本发明的一些实施例中,所述更新单元803,还用于根据所述排序后的结果,结合页面上所需数据的请求,对所述可观察对象进行赋值,确定赋值结果;以及若所述可观察对象包含所述监听函数,则利用所述赋值结果,实现页面动态数据的更新。
176.可以理解的是,在上述装置实现方案中,通过优化数据源配置模型和引入响应式编程,使得动态数据源支持动态参数配置,提高了配置的灵活性,而且在页面渲染阶段,减少了同一数据源的调用次数。
177.基于上述实施例的方法,本发明实施例还提供了一种获取动态数据的装置结构示意图,如图9所示,该获取动态数据的装置包括:处理器901和存储器902;存储器902存储处理器901可执行的一个或者多个程序,当一个或者多个程序被执行时,通过处理器901执行如前所述实施例的任意一种获取动态数据的方法。
178.本发明实施例提供了一种计算机可读存储介质,存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,程序被处理器执行时实现如本发明实施例的获取动态数据的方法。
179.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
180.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
181.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
182.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
183.以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1