树形数据结构及其分页加载方法技术

技术编号:38714763 阅读:10 留言:0更新日期:2023-09-08 14:57
本发明专利技术属于数据处理技术领域,具体涉及一种树形数据结构及分页加载方法。其中,树形数据结构,包括若干节点,节点包括节点ID字段、节点名称字段、父节点ID字段,节点还包括:节点级别字段,表示当前节点相对于根节点的层级关系;排序值字段,表示当前节点在树形数据结构中的位置。本发明专利技术的树形数据结构,与传统的树形数据结构相比,数据的大小不再受限制。无论是数据量大还是小,只要能够确保平级数据的加载性能,都可以轻松加载任意大小的数据。这使得在处理大规模数据时不会出现性能问题,而且还能够轻松地进行数据的快速检索和处理。还能够轻松地进行数据的快速检索和处理。还能够轻松地进行数据的快速检索和处理。

【技术实现步骤摘要】
树形数据结构及其分页加载方法


[0001]本专利技术属于数据处理
,具体涉及一种树形数据结构及分页加载方法。

技术介绍

[0002]现有的树形数据结构其节点通常如图1所示,包括节点ID字段、节点名称字段、父节点ID字段等的数据结构。当前端加载数据时,一般会根据数据量的多少,采用如下不同的方式:1)在数据量较少的情况下,前端发起数据请求;后端程序检索符合条件的数据;前端收到数据,处理数据,把数据转换成如图2所示的树形数据结构模型,以用于数据渲染;前端根据完整的树形数据结构进行渲染。
[0003]2)在数据量较多的情况下,前端请求后端加载第一层数据;前端依次判断返回的第一层数据是否有下级数据,有下级数据的话,以该层数据的节点id作为查询数据的父节点,进行检索下层数据;递归执行第2步直到数据全部加载完成。
[0004]在大数据量加载模式下,存在以下问题:首先,在层级较多的情况下,频繁递归调用可能会导致性能问题,尤其是在请求后端数据接口的情况下。这种情况下,需要经过多次网络请求和数据处理才能获取到全部数据,对系统性能和用户体验都会产生不良影响。
[0005]其次,当某一层的数据量很大时,一次性返回所有数据会给调用接口产生很大的压力。例如,某一层数据有上万条,需要一次性返回所有数据,这会对后端应用的查询和网络传输都产生很大的压力,导致系统性能下降。

技术实现思路

[0006]本专利技术针对上述技术问题,目的在于提供一种树形数据结构及分页加载方法。
[0007]为了解决上述问题,根据本专利技术的一个方面,提供了一种树形数据结构,包括若干节点,所述节点包括节点ID字段、节点名称字段、父节点ID字段,所述节点还包括:节点级别字段,表示当前节点相对于根节点的层级关系;排序值字段,表示当前节点在所述树形数据结构中的位置。
[0008]可选的,所述节点级别字段的数据类型为整数。
[0009]可选的,所述节点级别字段是以根节点开始排序,所述树形数据结构中父节点的节点级别字段比其下级节点的节点级别字段小1或大1。
[0010]可选的,所述排序值字段的数据类型为整数或字符串。
[0011]可选的,所述排序值字段是以根节点开始排序,且当前节点的排序值字段的ASCII码比上一节点的排序值字段的ASCII码大1或小1。
[0012]为了解决上述问题,根据本专利技术的另一个方面,提供了一种基于本专利技术上述所述树形数据结构的前端分页加载方法,包括:S11,向后端发起分页数据请求,所述分页数据请求中包含有树参和分页参数;
S12,接收后端返回的反馈数据及符合所述树参对应的树形数据结构的总记录数;S13,以排序值字段进行排序,对所述反馈数据内的每条数据对应一个树形节点的UI节点对象,进行页面渲染;S14,根据所述总记录数及当前分页参数判断是否还有未加载完成的数据,若有,则修改当前分页参数,返回步骤S11。
[0013]可选的,步骤S13中,在进行页面渲染时:根据节点级别字段对所述UI节点对象进行渲染。
[0014]可选的,步骤S13之后,还包括:根据所述反馈数据构建前端的树形数据模型,进行缓存。
[0015]可选的,还包括S15,对树形数据结构的折叠:S151,响应鼠标数据,获取所述鼠标数据对应的当前页面元素所在的节点的节点级别字段;S152,从当前页面元素所在的节点向下查找节点级别字段小于等于步骤S151获取的节点级别字段的第一个节点;S153,隐藏从当前页面元素所在的节点至所述第一个节点之间的其他节点。
[0016]可选的,还包括S16,对树形数据结构的展开:S161,响应鼠标数据,获取所述鼠标数据对应的当前页面元素所在的节点的节点级别字段;S162,从当前页面元素所在的节点向下查找节点级别字段小于等于步骤S161获取的节点级别字段的第一个节点;S163,显示从当前页面元素所在的节点至所述第一个节点之间的其他节点。
[0017]为了解决上述问题,根据本专利技术的另一个方面,提供了一种基于本专利技术上述所述树形数据结构的后端分页加载方法,包括:S21,接收前端的分页数据请求,所述分页数据请求中包含有树参和分页参数,根据所述分页数据请求进行数据检索;S22,将所述树参对应的树形数据结构以排序值字段进行排序,根据所述树形数据结构中最小的排序值字段及最大的排序值字段,得到所述树形数据结构的总记录数,将所述分页参数对应的若干条数据作为反馈数据;S23,将所述反馈数据及所述总记录数反馈给前端。
[0018]有益效果:本专利技术具有如下至少一项或多项优点:1、本专利技术的树形数据结构,与传统的树形数据结构相比,数据的大小不再受限制。无论是数据量大还是小,只要能够确保平级数据的加载性能,都可以轻松加载任意大小的数据。这使得在处理大规模数据时不会出现性能问题,而且还能够轻松地进行数据的快速检索和处理。
[0019]2、本专利技术支持任意加载渲染树中的任意一段内容,因此用户可以根据自己的需求灵活选择要加载和渲染的数据部分。这项功能可以大大提高用户的工作效率和数据处理速度,同时还能够降低系统的资源占用率,提高整个系统的稳定性和可靠性。本专利技术为处理大规模数据和优化数据处理提供了强有力的支持。
附图说明
[0020]图1为现有技术中树形数据结构的一种节点示意图;图2为图1的树形数据结构对应的数据结构模型;图3为本专利技术树形数据结构的一种节点示意图;图4为图3的树形数据结构对应的数据结构模型;图5为本专利技术的一种实施例树形数据结构。
实施方式
[0021]以下将结合附图对本专利技术的较佳实施例进行详细说明,以便更清楚理解本专利技术的目的、特点和优点。应理解的是,附图所示的实施例并不是对本专利技术范围的限制,而只是为了说明本专利技术技术方案的实质精神。
[0022]在下文的描述中,出于说明各种公开的实施例的目的阐述了某些具体细节以提供对各种公开实施例的透彻理解。但是,相关领域技术人员将认识到可在无这些具体细节中的一个或多个细节的情况下来实践实施例。在其它情形下,与本申请相关联的熟知的装置、结构和技术可能并未详细地示出或描述从而避免不必要地混淆实施例的描述。
[0023]在整个说明书中对“一个实施例”或“一实施例”的提及表示结合实施例所描述的特定特点、结构或特征包括于至少一个实施例中。因此,在整个说明书的各个位置“在一个实施例中”或“在一实施例”中的出现无需全都指相同实施例。另外,特定特点、结构或特征可在一个或多个实施例中以任何方式组合。
[0024]在以下描述中,为了清楚展示本专利技术的结构及工作方式,将借助诸多方向性词语进行描述,但是应当将“前”、“后”、“左”、“右”、“外”、“内”、“向外”、“向内”、“上”、“下”等词语理解为方便用语,而不应当理解为限定性词语。
[0025]树形数据结构是一类重要的非线性数据结构,树形数据结构可以表示数据表素之间一对多的关系,直观看来,树是以分支关系定义的层次结构。在计算机科学中,树是用来模拟具有树状结构性质的数据集本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种树形数据结构,包括若干节点,所述节点包括节点ID字段、节点名称字段、父节点ID字段,其特征在于,所述节点还包括:节点级别字段,表示当前节点相对于根节点的层级关系;排序值字段,表示当前节点在所述树形数据结构中的位置。2.如权利要求1所述的树形数据结构,其特征在于,所述节点级别字段的数据类型为整数。3.如权利要求2所述的树形数据结构,其特征在于,所述节点级别字段是以根节点开始排序,所述树形数据结构中父节点的节点级别字段比其下级节点的节点级别字段小1或大1。4.如权利要求1所述的树形数据结构,其特征在于,所述排序值字段的数据类型为整数或字符串。5.如权利要求4所述的树形数据结构,其特征在于,所述排序值字段是以根节点开始排序,且当前节点的排序值字段的ASCII码比上一节点的排序值字段的ASCII码大1或小1。6.一种基于权利要求1至5中任意一项所述树形数据结构的前端分页加载方法,包括:S11,向后端发起分页数据请求,所述分页数据请求中包含有树参和分页参数;S12,接收后端返回的反馈数据及符合所述树参对应的树形数据结构的总记录数;S13,以排序值字段进行排序,对所述反馈数据内的每条数据对应一个树形节点的UI节点对象,进行页面渲染;S14,根据所述总记录数及当前分页参数判断是否还有未加载完成的数据,若有,则修改当前分页参数,返回步骤S11。7.如权利要求6所述的前端分页加载方法,其特征在于,步骤S13中,在进行页面渲染时:根据节点级别字段...

【专利技术属性】
技术研发人员:朱志刚
申请(专利权)人:智研汇杭州科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1