数据更新方法及装置、存储介质、电子装置与流程

文档序号:32784610发布日期:2023-01-03 17:40阅读:62来源:国知局
数据更新方法及装置、存储介质、电子装置与流程

1.本发明实施例涉及通信领域,具体而言,涉及一种数据更新方法及装置、存储介质、电子装置。


背景技术:

2.可视用户环境(visual user environment,简称为vue)框架作为最流行的前端框架之一,在前端领域被广泛使用,在使用vue开发超长列表的业务场景时,由于vue自身更新机制的原因,随着列表数据的增加,更新效率会逐渐降低,当数据增加到一定规模,用户会明显感知到响应变慢。例如,当开发一个类似朋友圈的页面,有10000条数据,点赞其中某一条数据,vue会自动检查这10000条数据更新前后的差异,也就是说要比较10000次之后才能确定需要更新的内容,在计算性能较差的硬件环境中,用户体验下降的会更加明显。
3.在现有的技术中,在列表页增加分页处理,比如每次只加载10条数据,用户上拉滑动会继续加载后面10条数据,这样用户在访问时间较短,加载数据量较小的场景下不易出现难以接受的更新迟钝的体验。但分页逻辑不能适配全部业务场景,在不能分页的场景中无法应用。用户浏览时长足够的情况下,依然存在加载海量数据的可能性,同样会有更新迟钝的风险。
4.针对上述技术问题,相关技术中尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供了一种数据更新方法及装置、存储介质、电子装置,以至少解决相关技术中数据加载的问题。
6.根据本发明的一个实施例,提供了一种数据更新方法,包括:在获取到更新数据的情况下,确定上述更新数据所在的第一目标数据层,其中,上述第一目标数据层中包括k条数据和目标容器子节点,上述k是大于或等于1的自然数;将上述更新数据更新至上述k条数据中,得到更新后的k条数据;将上述更新后的k条数据存储至上述目标容器子节点中。
7.根据本发明的另一个实施例,提供了一种数据更新装置,包括:第一确定模块,用于在获取到更新数据的情况下,确定上述更新数据所在的第一目标数据层,其中,上述第一目标数据层中包括k条数据和目标容器子节点,上述k是大于或等于1的自然数;第一更新模块,用于将上述更新数据更新至上述k条数据中,得到更新后的k条数据;第一存储模块,用于将上述更新后的k条数据存储至上述目标容器子节点中。
8.在一个示例性实施例中,上述装置还包括:第一处理模块,用于将上述k条数据分层至数据层中,得到上述第一目标数据层;第一插入模块,用于在上述第一目标数据层中插入上述第一容器节点;第一增加模块,用于第一容器节点中增加n个第一容器子节点,其中,n个第一容器子节点中包括目标容器子节点,n是大于或等于1的自然数。
9.在一个示例性实施例中,上述第一更新模块,包括:第一比较单元,用于比较上述更新数据与上述k条数据中的每条数据,以确定k条数据中待更新的数据;第一替换单元,用
于将上述待更新的数据替换为上述更新数据,得到上述更新后的k条数据。
10.在一个示例性实施例中,上述装置还包括:第二增加模块,用于在上述目标容器子节点后增加第二容器子节点,其中,上述第二容器子节点用于承载上述目标容器子节点中的更新数据。
11.在一个示例性实施例中,上述装置还包括:第一加载模块,用于在获取到m条数据的情况下,在目标应用中加载m条数据,其中,m是大于或等于1的自然数;第一分层模块,用于将m条数据分层至第二目标数据层中;第三增加模块,用于在第二目标数据层中增加第二容器节点。
12.根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
13.根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
14.通过本发明,通过在获取到更新数据的情况下,确定更新数据所在的第一目标数据层,其中,第一目标数据层中包括k条数据和目标容器子节点,k是大于或等于1的自然数;将更新数据更新至k条数据中,得到更新后的k条数据;将更新后的k条数据存储至目标容器子节点中。使得数据在更新的情况下,仅仅比较同层级的数据,避免了更新的迟钝,加快了数据的加载。因此,可以解决数据相关技术中加载数据的问题,达到提高数据加载速度的效果。
附图说明
15.图1是本发明实施例的一种数据更新方法的移动终端的硬件结构框图;
16.图2是根据本发明实施例的数据更新方法的流程图;
17.图3是根据本发明实施例的原理示意图;
18.图4是根据本发明具体实施例的流程图;
19.图5是根据本发明实施例的数据更新装置的结构框图。
具体实施方式
20.下文中将参考附图并结合实施例来详细说明本发明的实施例。
21.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
22.本技术实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种数据更新方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组
件,或者具有与图1所示不同的配置。
23.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据更新方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
24.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
25.在本实施例中提供了一种数据更新方法,图2是根据本发明实施例的数据更新方法的流程图,如图2所示,该流程包括如下步骤:
26.步骤s202,在获取到更新数据的情况下,确定更新数据所在的第一目标数据层,其中,第一目标数据层中包括k条数据和目标容器子节点,k是大于或等于1的自然数;
27.步骤s204,将更新数据更新至k条数据中,得到更新后的k条数据;
28.步骤s206,将更新后的k条数据存储至目标容器子节点中。
29.其中,上述步骤的执行主体可以为终端等,但不限于此。
30.本实施例包括但不限于应用于海量数据加载的场景,例如,一个朋友圈的页面,有10000条数据,点赞其中某一条数据,下拉更新朋友圈页面,对更新后的数据进行加载的场景。
31.在本实施例中,以朋友圈列表的场景举例,用户点赞会触发数据更新,更新前后的朋友圈列表数据就属于同层,从头至尾比较每一条数据的差异,如果有变化则会做更新处理。
32.在本实施例中,例如,目标数据层中包括10条数据。
33.通过上述步骤,通过在获取到更新数据的情况下,确定更新数据所在的第一目标数据层,其中,第一目标数据层中包括k条数据和目标容器子节点,k是大于或等于1的自然数;将更新数据更新至k条数据中,得到更新后的k条数据;将更新后的k条数据存储至目标容器子节点中。使得数据在更新的情况下,仅仅比较同层级的数据,避免了更新的迟钝,加快了数据的加载。因此,可以解决数据相关技术中加载数据的问题,达到提高数据加载速度的效果。
34.在一个示例性实施例中,在获取到更新数据的情况下,确定更新数据所在的第一目标数据层之前,方法还包括:
35.s1,将k条数据分层至数据层中,得到第一目标数据层;
36.s2,在第一目标数据层中插入第一容器节点;
37.s3,在第一容器节点中增加n个第一容器子节点,其中,n个第一容器子节点中包括目标容器子节点,n是大于或等于1的自然数。
38.在本实施例中,以朋友圈为例,对朋友圈中的数据重新分层,每10条数据为一层,同时在这一层维护一个容器子节点,将后续获取的数据以同样的规则(每10条为一层,同时在这一层维护一个子节点)插入容器子节点中,依次执行,直到全部数据处理完成。
39.在一个示例性实施例中,将更新数据更新至k条数据中,得到更新后的k条数据,包括:
40.s1,比较更新数据与k条数据中的每条数据,以确定k条数据中待更新的数据;
41.s2,将待更新的数据替换为更新数据,得到更新后的k条数据。
42.在本实施例中,例如,用户点赞某一条朋友圈,只需要比较这条数据所在层级的10条数据的差异,就能得到更新内容,时间复杂度为o(10),极大提升了更新效率,且保证更新效率不会随着数据量的增加而衰减。
43.在一个示例性实施例中,将更新后的k条数据存储至目标容器子节点中之后,方法还包括:
44.s1,在目标容器子节点后增加第二容器子节点,其中,第二容器子节点用于承载目标容器子节点中的更新数据。
45.在本实施例中,通过增加第一容器子节点,使得在数据发生更新的情况下,只需要比较这条数据所在层级的数据的差异。提高了更新的效率。
46.在一个示例性实施例中,方法还包括:
47.s1,在获取到m条数据的情况下,在目标应用中加载m条数据,其中,m是大于或等于1的自然数;
48.s2,将m条数据分层至第二目标数据层中;
49.s3,在第二目标数据层中增加第二容器节点。
50.在本实施例中,例如,在加载到新的数据的情况下,可以将新的数据划分为新的层级结构,并在同一层末尾增加容器节点。
51.下面结合具体实施例对本发明进行详细说明:
52.本实施例包括但不限于适用于对分页逻辑不能适配的业务场景中。本实施例采用文档对象模型(document object model,简称为dom)结构,保障在超长列表场景中更新效率不受影响。
53.如图3所示,本实施例将数据划分为新的层级结构,其中,包括根节点,多个一级子节点,并将dom渲染为同样的层级结构,并在同一层末尾增加子容器节点。当数据超过10条,后续的数据会被以同样的规则插入到子容器节点中。按照上述规则递归执行,直到全部数据加载完成。例如,节点数据有更新时,在子容器后面增加多个二级子节点,并在同一层末尾增加子容器节点,即触发vue对同层级更新前后的数据比较,而非全部。
54.如图4所示,本实施例具体包括以下步骤:
55.s401:数据初始化,加载10条数据。
56.s402:10条数据生成一层dom节点,插入根节点(相当于上述中的第一目标数据层),并在尾部增加子容器节点。
57.s403:根据获取到的数据判断是否有剩余数据未加载,若有,开启上拉加载功能,若无,关闭下拉加载,渲染完成。
58.s404:当用户操作,触发某条数据更新,vue单独比较该数据所在层级的10条数据,
并更新这一层dom结构。
59.s405:上拉加载获取新的10条数据,重复步骤s402,s403。
60.本实施例在不能分页的业务场景中同样适用。并且,由于react框架和vue框架的diff算法基本一致,都是同层比较,所以本实施例同样适用于react框架编写的前端应用。
61.综上所述,在海量数据的场景下可以保证vue比较前后数据差异的时间复杂度始终是o(10),避免更新迟钝。
62.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
63.在本实施例中还提供了一种数据更新装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
64.图5是根据本发明实施例的数据更新装置的结构框图,如图5所示,该装置包括:
65.第一确定模块52,用于在获取到更新数据的情况下,确定更新数据所在的第一目标数据层,其中,第一目标数据层中包括k条数据和目标容器子节点,k是大于或等于1的自然数;
66.第一更新模块54,用于将更新数据更新至k条数据中,得到更新后的k条数据;
67.第一存储模块56,用于将更新后的k条数据存储至目标容器子节点中。
68.在一个示例性实施例中,上述装置还包括:
69.第一处理模块,用于将上述k条数据分层至数据层中,得到上述第一目标数据层;
70.第一插入模块,用于在上述第一目标数据层中插入上述第一容器节点;
71.第一增加模块,用于第一容器节点中增加n个第一容器子节点,其中,n个第一容器子节点中包括目标容器子节点,n是大于或等于1的自然数。
72.在一个示例性实施例中,上述第一更新模块,包括:
73.第一比较单元,用于比较上述更新数据与上述k条数据中的每条数据,以确定k条数据中待更新的数据;
74.第一替换单元,用于将上述待更新的数据替换为上述更新数据,得到上述更新后的k条数据。
75.在一个示例性实施例中,上述装置还包括:
76.第二增加模块,用于在上述目标容器子节点后增加第二容器子节点,其中,上述第二容器子节点用于承载上述目标容器子节点中的更新数据。
77.在一个示例性实施例中,上述装置还包括:
78.第一加载模块,用于在获取到m条数据的情况下,在目标应用中加载m条数据,其中,m是大于或等于1的自然数;
79.第一分层模块,用于将m条数据分层至第二目标数据层中;
80.第三增加模块,用于在第二目标数据层中增加第二容器节点。
81.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
82.本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
83.在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以上各步骤的计算机程序。
84.在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
85.本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
86.在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
87.在一个示例性实施例中,上述处理器可以被设置为通过计算机程序执行以上各步骤。
88.本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
89.显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
90.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1