[发明专利]一种结合虚拟DOM更新树形数据结构方法、装置及应用在审
申请号: | 202210752404.0 | 申请日: | 2022-06-29 |
公开(公告)号: | CN115017161A | 公开(公告)日: | 2022-09-06 |
发明(设计)人: | 毛云青;林学超;乐耀东;彭大蒙;谢淼烽 | 申请(专利权)人: | 城云科技(中国)有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/215 |
代理公司: | 杭州汇和信专利代理有限公司 33475 | 代理人: | 董超 |
地址: | 310052 浙江省杭州市滨江区长*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 结合 虚拟 dom 更新 树形 数据结构 方法 装置 应用 | ||
1.一种结合虚拟DOM更新树形数据结构的方法,其特征在于,包括以下步骤:
获取第一树形数据结构;
基于所述第一树形数据结构生成第一虚拟dom结构;
获取第二树形数据结构对应的第二虚拟dom结构;
依节点所在的层级依次比对所述第一虚拟dom结构和所述第二虚拟dom结构,将所述第一虚拟dom结构中相对所述第二虚拟dom结构被删除的节点作为无用节点,所述无用节点存入回收数组并记录对应的回收操作;将所述第二虚拟dom结构相对于所述第一虚拟dom结构增加的节点作为新增节点,所述新增节点的指针存入比较结果数组并记录对应的待新增操作;
基于所述比较结果数组从所述回收数组中移动相同节点类型的无用节点,并修改所述无用节点的内容,将所述待新增操作转为新增操作;
执行变更操作获取第二树形数据结构,其中所述变更操作至少包括回收操作和/或新增操作的一种或多种。
2.根据权利要求1所述的结合虚拟DOM更新树形数据结构的方法,其特征在于,在“基于所述第一树形数据结构生成第一虚拟dom结构”步骤中,在所述第一树形数据结构外部添加根节点,并转换所述第一树形数据结构的节点类型得第一虚拟dom结构。
3.根据权利要求1所述的结合虚拟DOM更新树形数据结构的方法,其特征在于,遍历所述第一虚拟dom结构并统计不同节点类型的第一节点数量,遍历所述第二虚拟dom结构并统计不同节点类型的第二节点数量,若同一节点类型的所述第二节点数量大于等于所述第一节点数量,回收该节点类型下的所有无用节点;若同一节点类型的所述第一节点数量大于所述第二节点数量,回收所述节点的数量为第二节点数量。
4.根据权利要求1所述的结合虚拟DOM更新树形数据结构的方法,其特征在于,在“依节点所在的层级依次比对所述第一虚拟dom结构和所述第二虚拟dom结构”步骤中,若所述第二虚拟dom结构中存在同所述第一虚拟dom结构相比仅是内容变更的节点,直接记录修改操作,所述变更操作至少包括回收操作、修改操作和/或新增操作的一种或多种。
5.根据权利要求1所述的结合虚拟DOM更新树形数据结构的方法,其特征在于,在“将所述第一虚拟dom结构中相对所述第二虚拟dom结构被删除的节点作为无用节点”步骤中,在同一层级内,获取所述第一虚拟dom结构中未出现在所述第二虚拟dom结构中对应层级位置的节点,以及所述第一虚拟dom结构中同所述第二虚拟dom结构位于同一层级位置但节点类型不同的节点作为无用节点,所述无用节点的子节点也作为无用节点。
6.根据权利要求1所述的结合虚拟DOM更新树形数据结构的方法,其特征在于,若所述回收数组内的无用节点不足以匹配所有所述比较结果数组记录的指针,则针对所述指针生成新增操作。
7.根据权利要求1所述的结合虚拟DOM更新树形数据结构的方法,其特征在于,第一树形数据结构的每一节点至少包含唯一节点标识、节点名称、节点类型以及父节点。
8.一种结合虚拟DOM更新树形数据结构的装置,其特征在于,包括:
第一树形数据结构获取单元,用于获取第一树形数据结构;
虚拟dom结构生成单元,用于基于所述第一树形数据结构生成第一虚拟dom结构;
更新数据获取单元,用于获取第二树形数据结构对应的第二虚拟dom结构;
比对单元,用于依节点所在的层级依次比对所述第一虚拟dom结构和所述第二虚拟dom结构,将所述第一虚拟dom结构中相对所述第二虚拟dom结构被删除的节点作为无用节点,所述无用节点存入回收数组并记录对应的回收操作;将所述第二虚拟dom结构相对于所述第一虚拟dom结构增加的节点作为新增节点,所述新增节点的指针存入比较结果数组并记录对应的待新增操作;
复用单元,用于基于所述比较结果数组从所述回收数组中移动相同节点类型的无用节点,并修改所述无用节点的内容,将所述待新增操作转为新增操作;
更新单元,用于执行变更操作获取第二树形数据结构,其中所述变更操作至少包括回收操作和/或新增操作的一种或多种。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于城云科技(中国)有限公司,未经城云科技(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210752404.0/1.html,转载请声明来源钻瓜专利网。