基于树形结构数据的高性能列表实现方法与设备技术

技术编号:27532175 阅读:30 留言:0更新日期:2021-03-03 11:11
本申请的目的是提供一种基于树形结构数据的高性能列表实现方案。该方案先获取树形结构数据的枝节点初始信息,然后构建枝节点索引,创建枝节点的状态信息,构建枝节点直属子代的枝节点和叶节点,接着构建高性能列表的数据源,将结果存入节点信息数组中,当所述高性能列表第一次展开时,异步获取枝节点下的数据,通过遍历所述节点信息数组,构建所述高性能列表的数据。与现有技术相比,本申请可以提升树型结构数据的操作性能,减少操作等待时间,提高用户的体验。提高用户的体验。提高用户的体验。

【技术实现步骤摘要】
基于树形结构数据的高性能列表实现方法与设备


[0001]本申请涉及信息
,尤其涉及一种基于树形结构数据的高性能列表实现技术。

技术介绍

[0002]在实际应用场景中,当出现有大量节点的树型结构数据需要进行展示和处理的情况,以目前现有的技术和组件(element-ui中的Tree树型控件),无法满足大量数据的展示和操作。当数据量很大的时候,执行选中/取消选中、展开/收起节点、滚动等操作,会出现很大的性能问题,延迟很高,用户体验特别差。

技术实现思路

[0003]本申请的一个目的是提供一种基于树形结构数据的高性能列表实现方法与设备。
[0004]根据本申请的一个方面,提供了一种基于树形结构数据的高性能列表实现方法,其中,所述方法包括:
[0005]获取树形结构数据的枝节点初始信息,其中,所述枝节点初始信息包括该树形结构数据所有的枝节点信息,以及每个枝节点下的直属枝节点和叶节点数量信息;
[0006]构建枝节点索引,创建枝节点的状态信息,构建枝节点直属子代的枝节点和叶节点;
[0007]构建高性能本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于树形结构数据的高性能列表实现方法,其中,所述方法包括:获取树形结构数据的枝节点初始信息,其中,所述枝节点初始信息包括该树形结构数据所有的枝节点信息,以及每个枝节点下的直属枝节点和叶节点数量信息;构建枝节点索引,创建枝节点的状态信息,构建枝节点直属子代的枝节点和叶节点;构建高性能列表的数据源,将结果存入节点信息数组中;当所述高性能列表第一次展开时,异步获取枝节点下的数据;通过遍历所述节点信息数组,构建所述高性能列表的数据。2.根据权利要求1所述的方法,其中,所述方法还包括:采用三层容器实现所述高性能列表,其中,通过第一层容器撑出所述高性能列表的滚动条,通过第二层容器设置所述高性能列表的顶部距离,通过第三层容器定位到所述高性能列表的正确位置。3.根据权利要求2所述的方法,其中,采用三层容器实现所述高性能列表的具体步骤包括:(a)计算所述高性能列表中每个项目的高度,计算所述高性能列表中应该渲染的高度,计算所述高性能列表中项目的数量;(b)将所述高性能列表的数据源进行分组处理,放入renderBatches中;根据父容器的滚动顶部值,计算得到用于索引的renderIndexs数组;计算所述高性能列表的高度,并将其设置为所述第一层容器的高度;当所述高性能列表滚动时,更新所述renderIndexs数组,同时计算所述高性能列表的顶部距离;根据所述renderIndexs数组的索引,从renderBatches中取出所需渲染的数据;(c)每当所述高性能列表滚动和/或所述高性能列表的数据源改变,重新计算所述步骤(b)。4.根据权利要求1至3中任一项所述的方法,其中,构建枝节点索引的具体步骤包括:按照层级序号正序排序,将层级序号小的枝节点数据排在前方;基于排序后的数据建立枝节点索引数据branchesObject,同时创建枝节点的状态信息,以及构建枝节点下的直属子代枝节点和叶节点,分别存放在枝节点和叶节点自身对应的数组里面;存储所构建的枝节点索引数据branchesObject。5.根据权利要求1至3中任一项所述的方法,其中,构建高性能列表的数据源的具体步骤包括:准备用于存放结果的节点信息数组platSortNodes;遍历所述枝节点初始信息,对所述枝节点初始信息中的每个枝节点进行递归处理;将每一个当前枝节点推入所述节点信息数组platSortNodes中,放在所述节点信息数组platSortNodes的最后;...

【专利技术属性】
技术研发人员:薛茹冰王星王瑞俞君杰王夷李东晓
申请(专利权)人:上海芯翌智能科技有限公司
类型:发明
国别省市:

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

1