文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

在某个项目中,发现当tree上加上checkbox后,初始化该树时会特别慢。现场树上的节点最深有三层,节点个数总和有200多个。经排查,为该tree的参数中开启了级联勾选的参数,导致初始化该树时每初始化一个节点便进行了一次级联判断,如此效率过低导致。

现在将级联勾选去除后,涉及到如下几个问题需要解决:

初始化时,需要在前端或者后端完成级联勾选逻辑。

  1. 手动勾选树上节点后,需要进行级联判断。
  2. 点击父节点时,子节点需要全部选中。
  3. 点击子节点时,需要判断父节点以及父组节点是否均需选中。

2.初始化时的后台级联选择算法

在树的数据初始化从后端读取时,我们可以首先获取到各子节点的选中状态,全部获取后,对构造出来的树结构进行整体判断是否进行父节点的勾选。其递归算法大致如下:

3.初始化后前端的级联选择算法(只讨论勾选)

树有两种状态,一种是勾选,一种是去勾选。这里仅仅只考虑勾选的过程。去勾选过程的算法与勾选算法一样。

当树初始化完成后,勾选树上任意节点时,需要完成如下两个级联判断:

a.如果勾选的为父节点,其所有子节点均需被勾选上,并且其父节点也要做级联判断。

b.如果勾选的为普通子节点,其父节点要做级联判断。

统一起来就是,需要做两个级联算法,分别是向上方向判断,和向下方向判断:

             

3.1针对父节点的级联算法

3.2针对子节点的级联判断

4.注意

递归算法中,递归层级(level)参数是个非常重要的参数,在控制操作逻辑上非常有用。

                                   -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                                  

转载于:https://www.cnblogs.com/naaoveGIS/p/5873107.html

通过递归算法完成树的级联勾选的一般思路相关推荐

  1. 发票专用驱动sjz_停机前未勾选完的发票,升完级后这样操作

    很多人担心,升级完成后10月基本就过了,手里的发票没法勾选到10月所属期,这里给大家特别强调一下,这点不用担心.在11月征期内,增值税申报之前,您都可以在"增值税发票综合服务平台(山西)&q ...

  2. 2019数据安装勾选_停机前未勾选完的发票,升完级后这样操作!后附常见问题解答...

    增值税发票综合服务平台(企业版)已经上线了,那么如何操作呢,让我们一起来看看吧! 特别提醒:新平台上线后,不管是10月份确认勾选过的发票还是通过扫描认证的,11月份初还是需要登录平台签名确认. 1. ...

  3. 2019数据安装勾选_宝象课堂丨如何正确安装SOLIDWORKS 2019?

    文丨宝象联合实验室工程师刘杨 转载请注明出处. 一直不断有粉丝给小象留言,询问如何正确安装SOLIDWORKS 2019版本? 宝象工程师刘工给大家整理出完整的安装步骤,以及一些需要注意的点,这样的硬 ...

  4. 外币评估时,错误勾选”资产负债表准备评估”的处理

    客户虐我千百遍,我待客户如初恋.我待客户如初恋,客户耍你团团转. 今天一个财务用户说:怎么外币评估不能评估了? 我:本月是不是评估过了 用户:是 我:评估过了,没有新差异就不用评估了 用户:评估完发现 ...

  5. visual2019没有勾选的在如何加入_发票管理系统完成升级,勾选认证平台改头换面,你所有的问题都在这里!...

    发票系统2.0版上线 为了进一步优化增值税发票系统,提高用户体验,根据国家税务总局安排部署,我省将于2019年11月1日对增值税发票管理系统进行全面升级改造为增值税发票管理系统2.0版. 增值税发票综 ...

  6. 级联选择组件_如何开发一个 Antd 级联多选控件

    本文也同步发在掘金上, https:// juejin.cn/post/69149942 41940750343 Intro 这篇文章将从零开始介绍如何开发一个 Antd 的级联多选选择器.先看效果: ...

  7. 10无法勾选隐藏的项目_3ds max一直卡在启动页面无法进入

    工作原因遇到过很多软件问题,也看到一些优秀教程,自己也想出来过一些解决问题的小方法(不知道是不是第一个想到的),以后不会不定期把自己的软件笔记搬运到知乎,希望能帮助到刚一些朋友. 以前在用2014中文 ...

  8. 在reader中勾选pdf复选框_轻松控制PDF文件的打开方式

    经常在网上下载资料的朋友们一定都有过这样的烦恼,现在不少资料在网上都是以PDF格式提供下载的,所以在安装有Adobe PDF Reader的电脑上,我们的IE总会"自作主张"地在它 ...

  9. Android 不能勾选 Project Build Target

    再勾选完project bulid target,从新返回这个页面,发现还是没有被勾选上. 从新刷新一下项目,原因是project.properties配置文件没有加载上. 下回导入的项目第一件事就是 ...

最新文章

  1. SRTP是如何工作的
  2. 两院院士评选2020年中国、世界十大科技进展揭晓,「机器学习模拟上亿原子」等入选 | AI日报...
  3. windows下qt5 kinect 2.0开发与环境配置
  4. 【Java网络编程(三)】TCP的使用——模拟用户登录
  5. Ralasafe的使用总结
  6. Google的wiki-map也上线了
  7. Hibernate征途(三)之CRUD
  8. 股票市值高好还是低好呢?
  9. 基于SSM的猫头鹰轻博客系统
  10. python判断回文字符串不考虑空格符号大小写_检查带有忽略的标点符号、空格和cas的回文文本...
  11. PXE配置-Tftpd64
  12. MATLAB学习之泰勒展开(四)
  13. $(html) 原生js,原生js仿jquery一些常用方法(必看篇)
  14. 文本分类上分微调技巧实战
  15. 2020中科大大数据学院 计算机专硕
  16. 报错:TypeError: Image data of dtype object cannot be converted to float
  17. java架构模式与设计模式(四)--事件风暴
  18. 这份新年豪礼面试锦囊,真舍不得给你们!
  19. macOS使用快捷键控制安卓手机音乐播放器
  20. ShapeExplorer

热门文章

  1. 会计学python有用吗-会计转到数据分析值得吗?
  2. python画曲线-如何通过python画loss曲线的方法
  3. python工程师薪资坑吗-入坑Python爬虫值不值?
  4. python基本语法规则-Python-基本语法元素
  5. python开发的软件sparrow-sparrow
  6. python如何读取excel数据-python怎么读取excel中的数值
  7. python常用函数-Python小白必备的8个最常用的内置函数(推荐)
  8. python实现文件下载-Python实现HTTP协议下的文件下载方法总结
  9. 学python比较好的书-学习Python编程的最好的几本书
  10. python入门到实践-看完Python从入门到实践后该看什么书?