CN117573125A - 一种树形结构数据渲染方法及装置 - Google Patents
一种树形结构数据渲染方法及装置 Download PDFInfo
- Publication number
- CN117573125A CN117573125A CN202311715954.6A CN202311715954A CN117573125A CN 117573125 A CN117573125 A CN 117573125A CN 202311715954 A CN202311715954 A CN 202311715954A CN 117573125 A CN117573125 A CN 117573125A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- tree
- tree structure
- flat
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000547 structure data Methods 0.000 title claims abstract description 72
- 238000009877 rendering Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000011068 loading method Methods 0.000 claims abstract description 42
- 238000013507 mapping Methods 0.000 claims abstract description 30
- 238000006243 chemical reaction Methods 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 230000009466 transformation Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种树形结构数据渲染方法及装置,包括:当接收到用户对树形结构进行展开或关闭的操作指令时,根据操作指令对树形结构中对应的结构数据进行加载,得到节点数据;根据节点数据对树形结构进行扁平转换,得到扁平树节点列表,并对目标树形结构中所有的节点逐一进行递归,得到每个节点与对应父级节点的弱引用,并将所有弱引用存储至弱映射结构中;根据操作指令和弱映射结构中的所有弱引用,对渲染中的节点数据进行更新加载。本发明通过对树形结构进行扁平转换,从而得到扁平树节点列表以及每个节点与对应父级节点的弱引用,对扁平树节点列表进行渲染,从而在不受到浏览器内存限制的情况下,对树形结构的数据进行渲染。
Description
技术领域
本发明涉及树形结构技术领域,具体涉及一种树形结构数据渲染方法及装置。
背景技术
随着大数据、云计算、人工智能等技术蓬勃发展,各行各业的信息量增加,数据量日益庞大,需要用到不同的展示方式。而树形控件是对某种数据层级关系的一种较好展示方式。前端轻量级、双向数据绑定的VUE框架,搭配Element UI中封装好的el-tree组件,可实现功能全面的树形控件。树形组件属于递归组件,当对任一节点进行操作时,都会调用树组件本身的递归方法。但是当树形控件的数据量大,树节点数据目多时,会出现页面加载缓慢,渲染速度慢,性能差等问题。由于在浏览器中操作DOM的代价非常大,DOM元素的增加、删除和修改与页面性能紧密相关。对树节点处理时,会递归遍历全部树形数据,若频繁进行DOM操作,如树形控件频繁的展开、折叠会多次进行重新构建,会造成浏览器卡顿,从而影响用户体验。如当页面上将5万个节点直接渲染到页面、某些父节点下的叶子节点数目为2000及以上时,容易导致页面崩溃,影响系统功能。
在现有技术中,树形结构的数据渲染,由于浏览器内存限制,无法展示大量数据,交互时,计算量较大,常常出现卡顿和响应慢的情况。
因此,急需提出一种树形结构数据渲染方法及装置,解决现有技术中存在的由于浏览器内存限制,无法在对树形结构进行数据渲染的过程中,展示大量数据的技术问题。
发明内容
有鉴于此,有必要提供一种树形结构数据渲染方法及装置,用以解决现有技术中存在的由于浏览器内存限制,无法在对树形结构进行数据渲染的过程中,展示大量数据的技术问题。
一方面,本发明提供了一种树形结构数据渲染方法,包括:
当接收到用户对树形结构进行展开或关闭的操作指令时,根据所述操作指令对所述树形结构中对应的结构数据进行加载,得到节点数据;
根据所述节点数据对所述树形结构进行扁平转换,得到扁平树节点列表,并对所述目标树形结构中所有的节点逐一进行递归,得到每个节点与对应父级节点的弱引用,并将所有弱引用存储至弱映射结构中;
在对所述扁平树节点列表进行渲染时,当接收到操作指令时,根据所述操作指令和所述弱映射结构中的所述所有弱引用,对所述渲染中的节点数据进行更新加载。
在一些可能的实现方式中,在所述根据所述节点数据对所述树形结构进行扁平转换,得到扁平树节点列表之后,所述方法还包括:
判断所述节点数据是否为空;
若是,则返回为空的所述扁平树节点列表;
若否,则执行后续步骤。
在一些可能的实现方式中,所述当接收到用户对树形结构进行展开或关闭的操作指令时,根据所述操作指令对所述树形结构中对应的结构数据进行加载,得到节点数据,包括:
当所述操作指令为全局加载指令时,对所述树形结构中所有的结构数据进行加载,得到所有的节点数据;
当所述操作指令为局部加载指令时,根据所述局部加载指令对所述树形结构对应的节点进行展开或关闭的操作,并根据所述节点中对应的结构数据,得到节点数据。
在一些可能的实现方式中,所述节点数据包括每个节点对应的节点属性和节点列表;所述节点列表包括所述节点对应的子节点的结构数据;
所述根据所述局部加载指令对所述树形结构对应的节点进行展开或关闭的操作,并根据所述节点中对应的结构数据,得到节点数据,包括:
当所述节点展开时,将所述节点的所述节点属性确定为已展开,并根据所述节点对应的节点列表中所有子节点的结构数据,确定节点数据。
在一些可能的实现方式中,在所述根据所述节点数据对所述树形结构进行扁平转换,得到扁平树节点列表之后,包括:
在接收到渲染操作指令的情况下,触发视图层的虚拟滚动操作;
根据所述虚拟滚动操作,将所述扁平树节点列表映射至所述视图层,以使所述视图层中的缓存区对所述扁平树节点列表进行渲染。
在一些可能的实现方式中,所述根据所述节点数据对所述树形结构进行扁平转换,得到扁平树节点列表,包括:
初始化第一列表;
根据所述节点数据中根节点的节点列表,确定预设个数子节点;
分别对所述预设个数子节点进行处理,得到每个子节点对应的节点列表;
将所有节点列表输入至所述第一列表,得到扁平树节点列表。
在一些可能的实现方式中,所述方法还包括:
根据所述弱映射结构中的弱引用,对子节点进行查询,得到与所述子节点弱引用关联的父级节点。
另一方面,本发明还提供了一种树形结构数据渲染装置,包括:
数据加载模块,用于当接收到用户对树形结构进行展开或关闭的操作指令时,根据所述操作指令对所述树形结构中对应的结构数据进行加载,得到节点数据;
节点递归模块,用于根据所述节点数据对所述树形结构进行扁平转换,得到扁平树节点列表,并对所述目标树形结构中所有的节点逐一进行递归,得到每个节点与对应父级节点的弱引用,并将所有弱引用存储至弱映射结构中;
列表渲染模块,用于在对所述扁平树节点列表进行渲染时,当接收到操作指令时,根据所述操作指令和所述弱映射结构中的所述所有弱引用,对所述渲染中的节点数据进行更新加载。
另一方面,本发明实施例公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述树形结构数据渲染方法实施例的各个步骤。
另一方面,本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述树形结构数据渲染方法实施例的各个步骤。
采用上述实施例的有益效果是:本发明提供的树形结构数据渲染方法,当接收到用户对树形结构进行展开或关闭的操作指令时,根据操作指令对树形结构中对应的结构数据进行加载,得到节点数据;根据节点数据对树形结构进行扁平转换,得到扁平树节点列表,并对目标树形结构中所有的节点逐一进行递归,得到每个节点与对应父级节点的弱引用,并将所有弱引用存储至弱映射结构中;根据弱映射结构中的所有弱引用,将扁平树节点列表进行映射,从而对扁平树节点列表进行渲染。本发明通过对树形结构进行扁平转换,从而可以得到扁平树节点列表以及每个节点与对应父级节点的弱引用,进而可以通过每个节点与对应父级节点的弱引用,对扁平树节点列表进行渲染,从而可以在不受到浏览器内存限制的情况下,对树形结构的数据进行渲染。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的树形结构数据渲染方法的一个实施例流程示意图;
图2为本发明提供的树形结构的一个实施例结构示意图;
图3为本发明提供的树形结构数据渲染装置的一个实施例结构示意图;
图4为本发明提供的电子设备的一个实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器系统和/或微控制器系统中实现这些功能实体。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其他实施例相结合。
本发明实施例提供了一种树形结构数据渲染方法及装置,以下分别进行说明。
图1为本发明提供的树形结构数据渲染方法的一个实施例流程示意图,如图1所示,树形结构数据渲染方法包括:
S101、当接收到用户对树形结构进行展开或关闭的操作指令时,根据操作指令对树形结构中对应的结构数据进行加载,得到节点数据;
S102、根据节点数据对树形结构进行扁平转换,得到扁平树节点列表,并对目标树形结构中所有的节点逐一进行递归,得到每个节点与对应父级节点的弱引用,并将所有弱引用存储至弱映射结构中;
S103、在对扁平树节点列表进行渲染时,当接收到操作指令时,根据操作指令和弱映射结构中的所有弱引用,对渲染中的节点数据进行更新加载。
与现有技术相比,本发明实施例提供的树形结构数据渲染方法,当接收到用户对树形结构进行展开或关闭的操作指令时,根据操作指令对树形结构中对应的结构数据进行加载,得到节点数据;根据节点数据对树形结构进行扁平转换,得到扁平树节点列表,并对目标树形结构中所有的节点逐一进行递归,得到每个节点与对应父级节点的弱引用,并将所有弱引用存储至弱映射结构中;根据弱映射结构中的所有弱引用,将扁平树节点列表进行映射,从而对扁平树节点列表进行渲染。本发明通过对树形结构进行扁平转换,从而可以得到扁平树节点列表以及每个节点与对应父级节点的弱引用,进而可以通过每个节点与对应父级节点的弱引用,对扁平树节点列表进行渲染,从而可以在不受到浏览器内存限制的情况下,对树形结构的数据进行渲染。
应当理解的是:视图层可以设置在浏览器上,可以在视图层上建立监听,监听视图层中树形结构的变化,还可以在视图层上建立缓存区,缓存区可以用于显示列表数据。
在本发明的具体实施例中,如图2所示,树形结构可以为[节点1:{节点属性,节点列表:[节点1-1:{节点属性,节点列表:[节点1-1-1:{...},节点1-1-2:{...},节点1-1-3:{...}]},节点1-2:{节点1-2-1:{...},节点1-2-2:{...},节点1-2-3:{...}},节点1-3:{节点1-3-1:{...}}]},节点2:{节点属性,节点列表:[]},...],其中,节点除下级节点列表外,还有节点属性,节点属性包含:是否已展开,是否已加载,是否加载中,唯一ID,和其他用户自定义属性等,具体的树形结构可以根据实际情况进行设置,本发明实施例在此不加以限制。
需要说明的是:可以根据不同的情况对树形结构的数据进行加载,在本发明的一些实施例中,步骤S101包括:
当操作指令为全局加载指令时,对树形结构中所有的结构数据进行加载,得到所有的节点数据;
当操作指令为局部加载指令时,根据局部加载指令对树形结构对应的节点进行展开或关闭的操作,并根据节点中对应的结构数据,得到节点数据。
在本发明的具体实施例中,可以根据用户的操作,确定操作指令,比如,当用户需要将树形结构中所有的结构数据进行加载时,可以选择全局加载指令,当需要加载树形结构中一部分的结构数据时,可以选择局部加载指令,局部加载指令中包括树形结构中待加载的对应的结构数据,比如,可以将节点1-2点击展开,则可以确定局部加载指令为加载节点1-2的结构数据,进而可以得到节点1-2的节点数据。同理,如果节点1-2的节点属性为已展开,也可以将节点1-2进行关闭,则局部加载指令可以为去除缓存区中对节点1-2的节点数据。
在本发明的一些实施例中,节点数据包括每个节点对应的节点属性和节点列表;节点列表包括节点对应的子节点的结构数据;
根据局部加载指令对树形结构对应的节点进行展开或关闭的操作,并根据节点中对应的结构数据,得到节点数据,包括:
当节点展开时,将节点的节点属性确定为已展开,并根据节点对应的节点列表中所有子节点的结构数据,确定节点数据。
在本发明的具体实施例中,当操作指令为局部加载指令时,可以对树形结构对应的节点进行展开或关闭的操作,进而加载对应的结构数据,比如,节点1-2的结构数据,可以将节点1-2进行展开,则可以将节点1-2的节点属性确定为已展开,进而加载节点1-2的结构数据,对节点1-2的结构数据的数据加载完成之后,可以执行加载方法回调,当数据返回成功时,可以将节点1-2的节点属性设置为已加载,然后可以对节点1-2对应的节点列表中节点1-2-1的结构数据进行加载,判断节点1-2-1的结构数据进行加载,并执行加载方法回调,再判断节点1-2-1的节点列表中是否存在下一子节点,如果有则再进行加载,如果没有则执行节点1-2-2,方法与加载节点1-2-1一致,当节点1-2中所有的子节点结构数据加载回调完成之后,可以根据所有回调的数据,确定节点数据。
在本发明的一些实施例中,步骤S102包括:
初始化第一列表;
根据节点数据中根节点的节点列表,确定预设个数子节点;
分别对预设个数子节点进行处理,得到每个子节点对应的节点列表;
将所有节点列表输入至第一列表,得到扁平树节点列表。
在本发明的具体实施例中,可以根据实际情况,设置拍平算法,拍平算法主要是通过深度优先遍历算法进行处理,可以初始化第一列表,然后可以获取根节点的节点列表,比如图2中的节点1和节点2,然后可以建立根节点和空对象的weakMap键值对,将根节点1作为参数输入到下个步骤,将节点2暂存在执行队列中,获取节点1-1、节点1-2和节点1-3的节点列表,后续执行的节点1-2和节点1-3在执行的队列中暂存,将节点1的节点数据写入第一列表,根据节点1和节点1-1建立weakMap键值对,将节点1-1作为参数传入下个步骤,将节点1-1的节点数据写入第一列表,获取节点1-1-1,根据节点1-1和节点1-1-1建立weakMap键值对,将节点1-1-1作为参数传入下个步骤,将节点1-1-1的节点数据写入第一列表,获取节点1-1,根据节点1-1和节点1-1-2建立weakMap键值对,将节点1-1-2作为参数传入下个步骤,以此类推,直到获取节点2,将节点2的节点数据写入第一列表,所有节点执行完成,得到包括所有节点数据的第一列表,将第一列表确定为扁平树节点列表。
在本发明的一些实施例中,步骤S102包括:
在接收到渲染操作指令的情况下,触发视图层的虚拟滚动操作;
根据虚拟滚动操作,将扁平树节点列表映射至视图层,以使视图层中的缓存区对扁平树节点列表进行渲染。
在本发明的具体实施例中,在得到扁平树节点列表之后,如果需要对扁平树节点列表进行渲染,可以接收用户发送的渲染操作指令,然后可以根据渲染操作指令触发视图层的虚拟滚动操作,进而可以根据虚拟滚动操作将扁平树节点列表映射至视图层的缓存区中,从而可以使缓存区对扁平树节点列进行渲染。
在本发明的一些实施例中,在步骤S102之后,方法还包括:
判断节点数据是否为空;
若是,则返回为空的扁平树节点列表;
若否,则执行后续步骤。
在本发明的具体实施例中,还可以判断得到的扁平树节点列表是否为空,比如,当目标树形结构为空时,得到扁平树节点列表为空,则可以返回空的扁平树节点列表,如果不是为空,则可以正常进行后续步骤。
进一步的,在得到扁平树节点列表过程中目标树形结构中所有的节点逐一进行递归,将迭代对应节点和节点父级节点建立弱引用,也就是会逐一建立weakMap键值对,还会将当前节点作为键值,也就是确定传入的参数,然后可以将所有的弱引用,即所有的键值对存于内存中的weakMap结构中,即深度优先遍历算法处理完成,得到扁平树节点列表,和内存中的所有父子关系的weakMap结构,该结构的作用在于保留树结构全量信息的同时节省大量内存,方便内存回收。
进一步的,在对扁平树节点列表进行渲染时,如果接收到操作指令,则表示用户在缓存区进行了操作,比如,对缓存区中渲染的数据进行增、删、改、查等操作,进而可以根据对应的操作获取弱映射结构中的所有弱引用,进而可以得到树节点之间的关系,进而可以根据弱引用中的关系得到修改后的节点数据,进而可以对缓存区中的节点数据进行更新加载。
在本发明的一些实施例中,方法还包括:
根据弱映射结构中的弱引用,对子节点进行查询,得到与子节点弱引用关联的父级节点。
在现有技术中,无法快速直接通过子节点查询出父级节点,而在本发明的具体实施例中,可以通过弱引用构建所有父子节点的映射关系,根据所有节点之间的weakMap键值对,将节点引用作为键值获取其父节点。如此依次迭代,获取节点的所有父级节点,将该父级节点存入列表,列表即表示节点所有上级节点堆栈。
进一步的,本发明实施例设置自定义渲染模板和方法,从而可以根据自定义渲染模板和方法渲染节点数据,如果没有输入,则默认展示节点名称,如果有输入,则执行节点输入的自定义方法,自定方法输入参数为节点所有上级节点堆栈和当前节点数据,方便节点自定义方法扩展,相对于需要从原始树结构获取父节点层级,节省计算量。
为了更好实施本发明实施例中的树形结构数据渲染方法,在树形结构数据渲染方法基础之上,对应地,本发明实施例还提供了一种树形结构数据渲染装置,如图3所示,树形结构数据渲染装置包括:
数据加载模块301,用于当接收到用户对树形结构进行展开或关闭的操作指令时,根据操作指令对树形结构中对应的结构数据进行加载,得到节点数据;
节点递归模块302,用于根据节点数据对树形结构进行扁平转换,得到扁平树节点列表,并对目标树形结构中所有的节点逐一进行递归,得到每个节点与对应父级节点的弱引用,并将所有弱引用存储至弱映射结构中;
列表渲染模块303,用于在对扁平树节点列表进行渲染时,当接收到操作指令时,根据操作指令和弱映射结构中的所有弱引用,对渲染中的节点数据进行更新加载。
上述实施例提供的树形结构数据渲染装置可实现上述树形结构数据渲染方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述树形结构数据渲染方法实施例中的相应内容,此处不再赘述。
如图4所示,本发明还相应提供了一种电子设备400。该电子设备400包括处理器401、存储器402及显示器403。图4仅示出了电子设备400的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
存储器402在一些实施例中可以是电子设备400的内部存储单元,例如电子设备400的硬盘或内存。存储器402在另一些实施例中也可以是电子设备400的外部存储设备,例如电子设备400上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
进一步地,存储器402还可既包括电子设备400的内部储存单元也包括外部存储设备。存储器402用于存储安装电子设备400的应用软件及各类数据。
处理器401在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器402中存储的程序代码或处理数据,例如本发明中的树形结构数据渲染方法。
显示器403在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器403用于显示在电子设备400的信息以及用于显示可视化的用户界面。电子设备400的部件401-403通过系统总线相互通信。
在本发明的一些实施例中,当处理器401执行存储器402中的树形结构数据渲染程序时,可实现以下步骤:
当接收到用户对树形结构进行展开或关闭的操作指令时,根据操作指令对树形结构中对应的结构数据进行加载,得到节点数据;
根据节点数据对树形结构进行扁平转换,得到扁平树节点列表,并对目标树形结构中所有的节点逐一进行递归,得到每个节点与对应父级节点的弱引用,并将所有弱引用存储至弱映射结构中;
在对扁平树节点列表进行渲染时,当接收到操作指令时,根据操作指令和弱映射结构中的所有弱引用,对渲染中的节点数据进行更新加载。
应当理解的是:处理器401在执行存储器402中的树形结构数据渲染程序时,除了上面的功能之外,还可实现其他功能,具体可参见前面相应方法实施例的描述。
进一步地,本发明实施例对提及的电子设备400的类型不做具体限定,电子设备400可以为手机、平板电脑、个人数字助理(personal digitalassistant,PDA)、可穿戴设备、膝上型计算机(laptop)等便携式电子设备。便携式电子设备的示例性实施例包括但不限于搭载IOS、android、microsoft或者其他操作系统的便携式电子设备。上述便携式电子设备也可以是其他便携式电子设备,诸如具有触敏表面(例如触控面板)的膝上型计算机(laptop)等。还应当理解的是,在本发明其他一些实施例中,电子设备400也可以不是便携式电子设备,而是具有触敏表面(例如触控面板)的台式计算机。
相应地,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储计算机可读取的程序或指令,程序或指令被处理器执行时,能够实现上述各方法实施例提供的树形结构数据渲染方法步骤或功能。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件(如处理器,控制器等)来完成,计算机程序可存储于计算机可读存储介质中。其中,计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上对本发明所提供的树形结构数据渲染方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种树形结构数据渲染方法,其特征在于,包括:
当接收到用户对树形结构进行展开或关闭的操作指令时,根据所述操作指令对所述树形结构中对应的结构数据进行加载,得到节点数据;
根据所述节点数据对所述树形结构进行扁平转换,得到扁平树节点列表,并对所述目标树形结构中所有的节点逐一进行递归,得到每个节点与对应父级节点的弱引用,并将所有弱引用存储至弱映射结构中;
在对所述扁平树节点列表进行渲染时,当接收到操作指令时,根据所述操作指令和所述弱映射结构中的所述所有弱引用,对所述渲染中的节点数据进行更新加载。
2.根据权利要求1所述的树形结构数据渲染方法,其特征在于,在所述根据所述节点数据对所述树形结构进行扁平转换,得到扁平树节点列表之后,所述方法还包括:
判断所述节点数据是否为空;
若是,则返回为空的所述扁平树节点列表;
若否,则执行后续步骤。
3.根据权利要求1所述的树形结构数据渲染方法,其特征在于,所述当接收到用户对树形结构进行展开或关闭的操作指令时,根据所述操作指令对所述树形结构中对应的结构数据进行加载,得到节点数据,包括:
当所述操作指令为全局加载指令时,对所述树形结构中所有的结构数据进行加载,得到所有的节点数据;
当所述操作指令为局部加载指令时,根据所述局部加载指令对所述树形结构对应的节点进行展开或关闭的操作,并根据所述节点中对应的结构数据,得到节点数据。
4.根据权利要求3所述的树形结构数据渲染方法,其特征在于,所述节点数据包括每个节点对应的节点属性和节点列表;所述节点列表包括所述节点对应的子节点的结构数据;
所述根据所述局部加载指令对所述树形结构对应的节点进行展开或关闭的操作,并根据所述节点中对应的结构数据,得到节点数据,包括:
当所述节点展开时,将所述节点的所述节点属性确定为已展开,并根据所述节点对应的节点列表中所有子节点的结构数据,确定节点数据。
5.根据权利要求1所述的树形结构数据渲染方法,其特征在于,在所述根据所述节点数据对所述树形结构进行扁平转换,得到扁平树节点列表之后,包括:
在接收到渲染操作指令的情况下,触发视图层的虚拟滚动操作;
根据所述虚拟滚动操作,将所述扁平树节点列表映射至所述视图层,以使所述视图层中的缓存区对所述扁平树节点列表进行渲染。
6.根据权利要求1所述的树形结构数据渲染方法,其特征在于,所述根据所述节点数据对所述树形结构进行扁平转换,得到扁平树节点列表,包括:
初始化第一列表;
根据所述节点数据中根节点的节点列表,确定预设个数子节点;
分别对所述预设个数子节点进行处理,得到每个子节点对应的节点列表;
将所有节点列表输入至所述第一列表,得到扁平树节点列表。
7.根据权利要求1所述的树形结构数据渲染方法,其特征在于,所述方法还包括:
根据所述弱映射结构中的弱引用,对子节点进行查询,得到与所述子节点弱引用关联的父级节点。
8.一种树形结构数据渲染装置,其特征在于,包括:
数据加载模块,用于当接收到用户对树形结构进行展开或关闭的操作指令时,根据所述操作指令对所述树形结构中对应的结构数据进行加载,得到节点数据;
节点递归模块,用于根据所述节点数据对所述树形结构进行扁平转换,得到扁平树节点列表,并对所述目标树形结构中所有的节点逐一进行递归,得到每个节点与对应父级节点的弱引用,并将所有弱引用存储至弱映射结构中;
列表渲染模块,用于在对所述扁平树节点列表进行渲染时,当接收到操作指令时,根据所述操作指令和所述弱映射结构中的所述所有弱引用,对所述渲染中的节点数据进行更新加载。
9.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7中任一项所述的树形结构数据渲染方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的树形结构数据渲染方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311715954.6A CN117573125A (zh) | 2023-12-13 | 2023-12-13 | 一种树形结构数据渲染方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311715954.6A CN117573125A (zh) | 2023-12-13 | 2023-12-13 | 一种树形结构数据渲染方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117573125A true CN117573125A (zh) | 2024-02-20 |
Family
ID=89864241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311715954.6A Pending CN117573125A (zh) | 2023-12-13 | 2023-12-13 | 一种树形结构数据渲染方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573125A (zh) |
-
2023
- 2023-12-13 CN CN202311715954.6A patent/CN117573125A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8775923B1 (en) | Web page restoration | |
CN111639287A (zh) | 一种页面处理方法、装置、终端设备及可读存储介质 | |
US20150095854A1 (en) | Persisting state at scale across browser sessions | |
CN110020323B (zh) | 混合应用的页面切换方法、系统、计算机设备及存储介质 | |
US8832492B1 (en) | Systems and methods for managing applications | |
JP2009530739A (ja) | グラフィック・デザイナの再利用を可能にする宣言型定義 | |
CN104636464B (zh) | 访问文件的方法和装置 | |
CN114880289A (zh) | 一种文件分组显示方法及计算设备 | |
CN113986424A (zh) | 一种页面显示方法及装置 | |
US20210365406A1 (en) | Method and apparatus for processing snapshot, device, medium and product | |
CN110471700A (zh) | 图形处理方法、装置、存储介质及电子设备 | |
CN107025040B (zh) | 基于oled屏幕的显示设置方法、系统及图形用户界面 | |
CN117573125A (zh) | 一种树形结构数据渲染方法及装置 | |
CN114327660B (zh) | 基于fpga的外接内存的初始化方法 | |
US6915401B2 (en) | System and method for managing off-screen buffers for electronic images | |
US8793663B2 (en) | Smart cache for a server test environment in an application development tool | |
US8997044B2 (en) | Overriding system attributes and function returns in a software subsystem | |
CN112988278B (zh) | 资源文件的meta文件修改方法、装置、电子设备及存储介质 | |
US11194885B1 (en) | Incremental document object model updating | |
CN109002343B (zh) | 一种实现虚拟机批量创建的方法及装置 | |
CN113656038B (zh) | 编辑处理方法及装置 | |
WO2018112738A1 (en) | Power state management | |
CN113806107B (zh) | 一种对象拷贝方法、装置、设备及存储介质 | |
CN112948245B (zh) | 元素调试方法、装置、设备、存储介质及程序产品 | |
US9659036B2 (en) | Adaptive relational database access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |