基于虚拟树的动态树形结构渲染方法及装置制造方法及图纸

技术编号:39240079 阅读:11 留言:0更新日期:2023-10-30 11:52
本发明专利技术提供一种基于虚拟树的动态树形结构渲染方法及装置,该基于虚拟树的动态树形结构渲染方法包括:获取树结构数据;对树结构数据同步进行深度优先遍历处理和标准化处理,得到结构化数组;基于结构化数组的预估高度、当前页面中待渲染区域的高度信息和预设的缓存值得到当前页面的真实渲染数据;基于真实渲染数据对当前页面进行树渲染,得到动态树形结构的节点信息,并基于节点信息动态更新预估高度,得到结构化数组的位置更新信息。本发明专利技术所述方法能够对当前页面中的虚拟树结构数组的动态渲染,运用预估高度和更新缓存位置信息方法摆脱了固定高度的束缚,实现了列表项高度的动态更新,使得应用场景更丰富。使得应用场景更丰富。使得应用场景更丰富。

【技术实现步骤摘要】
基于虚拟树的动态树形结构渲染方法及装置


[0001]本专利技术涉及数据处理
,尤其涉及一种基于虚拟树的动态树形结构渲染方法及装置。

技术介绍

[0002]目前的树形结构渲染展示方法,主要通过循环或者递归的方式组装数据,生成有层级的树形结构,然后页面将全部树形结构数据进行渲染展示,对于数据量大的情景,页面进行树形结构全部数据渲染耗时巨大,会出现页面卡死现象;或是分批渲染,一开始只渲染一级节点,不对二级节点做解析和渲染,等用户点击某一个一级节点时才开始渲染此节点的二级节点,以此类推,当节点展开的数据多了后,同样会出现渲染时间长,页面卡死的现象,且上述方法只能对固定高度的树结构数据进行渲染,实用性差。

技术实现思路

[0003]本专利技术提供一种基于虚拟树的动态树形结构渲染方法及装置,用以解决现有技术采用循环、递归或者分批渲染的方式组装大量数据进行渲染展示时渲染效率低,容易导致页面卡死,且仅针对固定高度的树结构数据进行渲染,而导致实用性的缺陷,提高了渲染效率和实用性。
[0004]本专利技术提供一种基于虚拟树的动态树形结构渲染方法,包括:
[0005]获取树结构数据;
[0006]对所述树结构数据同步进行深度优先遍历处理和标准化处理,得到结构化数组;
[0007]基于所述结构化数组的预估高度、当前页面中待渲染区域的高度信息和预设的缓存值得到所述当前页面的真实渲染数据,所述预设的缓存值用于设置待渲染区域的缓冲区域;
[0008]基于所述真实渲染数据对所述当前页面进行树渲染,得到动态树形结构的节点信息,并基于所述节点信息动态更新所述预估高度,得到所述结构化数组的位置更新信息。
[0009]根据本专利技术提供的一种基于虚拟树的动态树形结构渲染方法,所述待渲染区域包括可视区域和缓冲区域,所述缓冲区域与所述可视区域相互独立;
[0010]所述基于所述结构化数组的预估高度、当前页面中待渲染区域的高度信息和预设的缓存值得到所述当前页面的真实渲染数据,包括:
[0011]基于所述可视区域的高度和所述预估高度计算所述可视区域所需渲染的元素数目,得到所述可视区域的渲染数据和所需渲染的元素的位置的索引信息;
[0012]基于所述预设的缓存值和所述预估高度得到所述缓冲区域的列表项数目;
[0013]基于所述可视区域的渲染数据、所需渲染的元素的位置的索引信息和所述缓冲区域的列表项数目,得到所述当前页面的真实渲染数据。
[0014]根据本专利技术提供的一种基于虚拟树的动态树形结构渲染方法,所述得到结构化数组之后,所述方法还包括:
[0015]对所述结构化数组进行是否具有节点层级、是否展开和是否可视化的筛选,并在所述结构化数组具备节点层级、所述结构化数组可以展开和所述结构化数组可视的情况下,确定所述结构化数组为有效数组。
[0016]根据本专利技术提供的一种基于虚拟树的动态树形结构渲染方法,所述结构化数组包括多个列表项,所述基于所述节点信息动态更新所述预估高度,得到所述结构化数组的位置更新信息,包括:
[0017]将每个列表项的预估高度更新为实际高度并存入缓存数组,所述缓存数组用于在页面渲染后存储每个列表项的高度数据和位置信息。
[0018]根据本专利技术提供的一种基于虚拟树的动态树形结构渲染方法,在所述基于所述结构化数组的预估高度、当前页面中待渲染区域的高度信息和预设的缓存值得到所述当前页面的真实渲染数据之后,所述方法还包括:
[0019]基于所述当前页面的真实渲染数据确定目标滚动条;
[0020]获取所述目标滚动条当前位置的数据索引;
[0021]计算所述数据索引对应的数据在所述结构化数组中的偏移位置,并将所述偏移位置设置在所述结构化数组。
[0022]根据本专利技术提供的一种基于虚拟树的动态树形结构渲染方法,所述计算所述数据索引对应的数据在所述结构化数组中的偏移位置,包括:
[0023]应用如下公式确定所述偏移位置:
[0024]偏移量=itemCache[startIndex].top

itemCache[oldStartIndex].top;
[0025]其中,itemCache[startIndex].top为当前起始数据的top值,itemCache[oldStartIndex].top为滚动前起始数据的top值,startIndex为所述当前位置的数据索引,oldStartIndex为滚动前的位置的数据索引,itemCache[]为缓存数组。
[0026]本专利技术还提供一种基于虚拟树的动态树形结构渲染装置,包括:
[0027]获取模块,用于获取树结构数据;
[0028]数据预处理模块,用于对所述树结构数据同步进行深度优先遍历处理和标准化处理,得到结构化数组;
[0029]计算模块,用于基于所述结构化数组的预估高度、当前页面中待渲染区域的高度信息和预设的缓存值得到所述当前页面的真实渲染数据,所述预设的缓存值用于设置待渲染区域的缓冲区域;
[0030]渲染和更新模块,用于基于所述真实渲染数据对所述当前页面进行树渲染,得到动态树形结构的节点信息,并基于所述节点信息动态更新所述预估高度,得到所述结构化数组的位置更新信息。
[0031]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于虚拟树的动态树形结构渲染方法。
[0032]本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于虚拟树的动态树形结构渲染方法。
[0033]本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于虚拟树的动态树形结构渲染方法。
[0034]本专利技术提供的基于虚拟树的动态树形结构渲染方法及装置,通过获取树结构数据,对树结构数据进行深度优先遍历处理,得到结构化数组,基于结构化数组的预估高度、待渲染区域的高度信息和预设的缓存值得到当前页面的真实渲染数据根据获取的真实渲染数据,并基于真实渲染数据对当前页面进行树渲染,得到动态树形结构的节点信息,并基于节点信息动态更新预估高度,能够对当前页面中的虚拟树结构数组的动态渲染,运用预估高度和更新缓存位置信息方法摆脱了固定高度的束缚,实现了列表项高度的动态更新,使得应用场景更丰富。
附图说明
[0035]为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036]图1是本专利技术提供的基于虚拟树的动态树形结构渲染方法的流程示意图之一;
[0037]图2是本专利技术提供的结构化数组中待渲染区域的结构示意图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于虚拟树的动态树形结构渲染方法,其特征在于,包括:获取树结构数据;对所述树结构数据同步进行深度优先遍历处理和标准化处理,得到结构化数组;基于所述结构化数组的预估高度、当前页面中待渲染区域的高度信息和预设的缓存值得到所述当前页面的真实渲染数据,所述预设的缓存值用于设置待渲染区域的缓冲区域;基于所述真实渲染数据对所述当前页面进行树渲染,得到动态树形结构的节点信息,并基于所述节点信息动态更新所述预估高度,得到所述结构化数组的位置更新信息。2.根据权利要求1所述的基于虚拟树的动态树形结构渲染方法,其特征在于,所述待渲染区域包括可视区域和缓冲区域,所述缓冲区域与所述可视区域相互独立;所述基于所述结构化数组的预估高度、当前页面中待渲染区域的高度信息和预设的缓存值得到所述当前页面的真实渲染数据,包括:基于所述可视区域的高度和所述预估高度计算所述可视区域所需渲染的元素数目,得到所述可视区域的渲染数据和所需渲染的元素的位置的索引信息;基于所述预设的缓存值和所述预估高度得到所述缓冲区域的列表项数目;基于所述可视区域的渲染数据、所需渲染的元素的位置的索引信息和所述缓冲区域的列表项数目,得到所述当前页面的真实渲染数据。3.根据权利要求1所述的基于虚拟树的动态树形结构渲染方法,其特征在于,所述得到结构化数组之后,所述方法还包括:对所述结构化数组进行是否具有节点层级、是否展开和是否可视化的筛选,并在所述结构化数组具备节点层级、所述结构化数组可以展开和所述结构化数组可视的情况下,确定所述结构化数组为有效数组。4.根据权利要求1所述的基于虚拟树的动态树形结构渲染方法,其特征在于,所述结构化数组包括多个列表项,所述基于所述节点信息动态更新所述预估高度,得到所述结构化数组的位置更新信息,包括:将每个列表项的预估高度更新为实际高度并存入缓存数组,所述缓存数组用于在页面渲染后存储每个列表项的高度数据和位置信息。5.根据权利要求1所述的基于虚拟树的动态树形结构渲染方法,其特征在于,在所述基于所述结构化数组的预估高度、当前页面中待渲染区域的高度信息和预设的缓存值得到所述当前页面的真实渲染数据之后,所述方法还包括:基于所述...

【专利技术属性】
技术研发人员:付诚
申请(专利权)人:武汉依迅北斗时空技术股份有限公司
类型:发明
国别省市:

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

1