懒加载树中定位节点的方法和系统的制作方法

文档序号:6434639阅读:192来源:国知局
专利名称:懒加载树中定位节点的方法和系统的制作方法
懒加载树中定位节点的方法和系统技术领域
本发明涉及数据处理技术,尤其涉及一种懒加载树中定位节点的方法和系统。背景技术
在很多业务系统中,经常需要以层次结构的方式展示数据,从而产生一种类似树型的组件,树上某个节点的子节点与该节点构成从属关系。例如,很多应用系统中人员组织树就是一种树组织。树组件在初次显示时通常并不是将所有的树节点全部加载,而是只加载展开的树节点,当用户展开某个树父节点时才加载该父节点的子节点,这种加载方式的树组件称为懒加载树。
在很多复杂的树型结构的数据中,由于数据量比较大,往往有定位节点的需求。图1示出了一个典型的树型结构,在页面上显示该树型结构时,客户端并不会将整个树型结构的节点都加载上来。在该树型结构中可定位某一个节点,如图2所示,即可在页面提供输入框供用户输入关键字,例如用户输入“西安”,想要查找出节点西安市,客户端根据用户输入的关键字在所有节点中进行查找,查找到与关键字“西安”匹配的节点西安市,则会在页面中显示节点西安市所在的父节点陕西省及其所有子节点,并将节点西安市置为选中状态。
根据懒加载树的原理,树组件在初次显示时只加载展开的树节点,因此在懒加载树中定位节点的具体实现为在根据关键字查找节点前,首先检测是否已全部加载了所有节点,如果没有,则会先全部加载好所有节点,然后在这些加载好的所有节点中查找与关键字匹配的节点,并定位到该节点;如果已经全部加载了所有节点,则直接根据关键字进行查找并定位。因此,传统的这种懒加载树中定位节点的方法,在查找前需要加载整个树上的所有节点,使得服务器的资源耗用和网络资源耗用非常大,也使得客户端在本地的内存占用非常大,甚至可能造成客户端无法 响应。
发明内容
基于此,有必要提供一种能减少服务器资源耗用和网络资源耗用,并能减少本地内存占用的懒加载树中定位节点的方法。
一种懒加载树中定位节点的方法,包括以下步骤
获取用户输入的节点定位请求;
根据所述节点定位请求在树中查找到目标节点,获取所述目标节点在树上的路径;
根据所述路径将树展开。
优选的,所述获取用户输入的节点定位请求的步骤为
获取用户输入的关节点定位请求,根据所述关节点定位请求在客户端查找目标节点,如果在客户端未查找到目标节点,则将所述节点定位请求提交到服务器。
优选的,所述路径包括目标节点的上层节点和目标节点;所述根据所述路径将树展的步骤包括
根据所述路径加载路径中的所述上层节点和目标节点,并根据所述路径展开路径中的所述上层节点和目标节点。
优选的,所述根据所述路径将树展开的步骤还包括
将所述目标节点置为选中状态。
优选的,所述节点定位请求包括目标节点的标识信息,所述目标节点的标识信息包括节点的关键字、编码、位置码的一个或多个的组合。
此外,还有必要提供一种能减少服务器资源耗用和网络资源耗用,并能减少本地内存占用的懒加载树中定位节点的系统。
一种懒加载树中定位节点的系统,包括客户端及与所述客户端进行交互的服务器,
所述客户端包括用于获取用户输入的节点定位请求的请求获取模块和用于将所述节点定位请求提交到所述服务器的第一通信模块;
所述服务器包括用于根据所述节点定位请求在树中查找目标节点,获取所述目标节点的路径的第二查找模块和用于将所述路径发送到客户端的第二通信模块;
所述客户端还包括用于根据所述路径将树展开的展示模块。
优选的,所述客户端还包括用于根据所述节点定位请求在客户端查找目标节点的第一查找 模块;
所述第一通信模块还用于当所述第一查找模块未查找到目标节点时,将所述节点定位请求提交到所述服务器。
优选的,所述路径包括目标节点的上层节点和目标节点;所述客户端还包括用于根据所述路径加载路径中的所述上层节点和目标节点的加载模块;
所述展示模块还用于根据路径展开路径中的所述上层节点和目标节点。
优选的,所述展示模块还用于将所述目标节点置为选中状态。
优选的,所述节点定位请求包括目标节点的标识信息,所述目标节点的标识信息包括节点的关键字、编码、位置码的一个或多个的组合。
上述懒加载树中定位节点的方法和系统,通过将用户输入的节点定位请求提交到服务器,服务器根据节点定位请求在树中查找目标节点,返回目标节点的路径,客户端根据该路径将树展开到目标节点。这样,客户端在定位节点时不需要一次性加载树的所有节点, 因此减少了网络资源耗用;由于服务器仅根据节点定位请求得到目标节点的路径,而不需要一下将完整的树的所有节点都返回,因此减少了服务器资源耗用;另外,由于客户端是根据服务器返回的路径展开目标节点的,而不需要一次性缓存树的所有节点,因此能够减少本地内存占用,能避免出现客户端无法响应的情形。

图1为一个典型的树型结构的示意图2为在图1的树型结构中定位节点的示意图3为一个实施例中懒加载树中定位节点的方法的流程示意图4为一个实施例中懒加载树中定位节点的系统的结构示意图5为另一个实施例中懒加载树中定位节点的系统的结构示意图。
具体实施方式
在一个实施例中,如图3所示,一种懒加载树中定位节点的方法,包括以下步骤
步骤S10,获取用户输入的节点定位请求。
在一个实施例中,获取用户输入的节点定位请求,根据节点定位请求在客户端查找目标节点;如果在客户端未查找到目标节点,则将节点定位请求提交到服务器;如果在客户端查找到目标节点,则说明已加载好了树的所有节点或目标节点,则不需要将节点定位请求提交到服务器,直接将树展开。
在一个实施例中,节点定位请求包括目标节点的标识信息。具体的,目标节点的标识信息包括节点的关键字、编码、位置码的一个或多个的组合。在本发明实施例中,客户端包括用户所使用的GUI程序或WEB服务等。
步骤S20,根据节点定位请求在树中查找目标节点,获取所述目标节点在树上的路径。
树的所有节点的数据都可存储在服务器,服务器根据节点定位请求可以在树中查找到目标节点。在一个实施例中,节点定位请求包括节点的关键字、编码、位置码的一个或多个的组合,服务器根据节点的关键字、编码和/或位置码在树中查找匹配的目标节点,并将匹配的目标节点返回给客户端。例如,如图2所示,用户输入的关键字为“西安”,查找到与该关键匹配的目标节点西安市。
步骤S30,根据路径将树展开。
在一个实施例中,获取的目标节点在树上的路径包括目标节点的上层节点和目标节点。如图2所示,根据关键字“西安”在树中查找目标节点西安市,则获取的路径可以为 “中国/陕西省/西安市”。
在一个实施例中,根据路径加载路径中的上层节点和目标节点,并根据路径展开路径中的上层节点和目标节点。例如,对于路径“中国/陕西省/西安市”,需要展开的节点包括“中国”、“陕西省”、“西安市”。在展开节点的过程中,如果节点已经加载好,则不需要再加载,如果节点没有加载,则需要从服务器加载该节点,从而展开路径中的上层节点和目标节点。
在一个实施例中,在根据路径逐步展开路径中的各个节点后,还可将目标节点置为选中状态。如图2所示,展开到节点西安市,并将节点西安市置为选中状态,即定位节点完成。
在一个实施例中,如图4所示,一种懒加载树中定位节点的系统,包括客户端10及与客户端10进行交互的服务器20,其中,客户端10包括用于获取用户输入的节点定位请求的请求获取模块110和用于将节点定位请求提交到服务器20的第一通信模块120,服务器 20包括用于根据节点定位请求在树中查找目标节点,获取目标节点的路径的第二查找模块 210和用于将路径发送到客户端10的第二通信模块220。本实施例中,客户端10还包括用于根据路径将树展开的展示模块130。其中,第一通信模块120还用于接收服务器20发送的路径,第二通信模块220还用于接收第一通信模块120提交的节点定位请求。
在一个实施例中,节点定位请求包括目标节点的标识信息。具体的,目标节点的标识信息包括节点的关键字、编码、位置码的一个或多个的组合。在本发明实施例中,客户端10包括用户所使用的⑶I程序或WEB服务等。
在一个实施例中,如图5所示,客户端10还包括用于根据节点定位请求在客户端 查找目标节点的第一查找模块140。本实施例中,第一通信模块120还用于当第一查找模块 140未查找到目标节点时,则将节点定位请求提交到服务器20。
树中的所有节点的数据都可存储在服务器20,服务器20的第二查找模块210根 据节点定位请求在树中查找到与关键字匹配的目标节点。在一个实施例中,第二查找模块 210获取的目标节点在树上的路径包括目标节点的上层节点和目标节点。
在一个实施例中,如图5所示,客户端10还包括用于根据路径加载路径中的上层 节点和目标节点的加载模块150。本实施例中,展示模块130还用于根据路径展开路径中的 上层节点和目标节点。在展示模块130展开节点的过程中,如果节点已加载好,则不需要再 加载,如果节点没有加载,则加载模块150从服务器20加载该节点,使得展示模块130可展 开路径中的上层节点和目标节点。
在一个实施例中,展示模块130还用于将所述目标节点置为选中状态。
上述懒加载树中定位节点的方法和系统中,通过将用户输入的节点定位请求提交 到服务器20,在服务器20查找目标节点,并向客户端10返回目标节点的路径,客户端10则 根据该路径将树展开到目标节点。这样,在定位节点时,客户端10不需要一次性加载树的 所有节点,减少了网络资源耗用;由于服务器20也不需要一下将完整的树的所有节点都返 回,因此能够减少服务器20资源耗用;而客户端10也不需要一次性缓存树的所有节点,因 此能够减少本地内存占用,不会出现客户端10无法响应的情形。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种懒加载树中定位节点的方法,包括以下步骤 获取用户输入的节点定位请求; 根据所述节点定位请求在树中查找到目标节点,获取所述目标节点在树上的路径; 根据所述路径将树展开。
2.根据权利要求1所述的懒加载树中定位节点的方法,其特征在于,所述获取用户输入的节点定位请求的步骤为 获取用户输入的节点定位请求,根据所述节点定位请求在客户端查找目标节点,如果在客户端未查找到目标节点,则将所述节点定位请求提交到服务器。
3.根据权利要求1所述的懒加载树中定位节点的方法,其特征在于,所述路径包括目标节点的上层节点和目标节点;所述根据所述路径将树展开的步骤包括 根据所述路径加载路径中的所述上层节点和目标节点,并根据所述路径展开路径中的所述上层节点和目标节点。
4.根据权利要求3所述的懒加载树中定位节点的方法,其特征在于,所述根据所述路径将树展开的步骤还包括 将所述目标节点置为选中状态。
5.根据权利要求1至4中任意一项所述的懒加载树中定位节点的方法,其特征在于,所述节点定位请求包括目标节点的标识信息;所述目标节点的标识信息包括节点的关键字、编码、位置码的一个或多个的组合。
6.一种懒加载树中定位节点的系统,包括客户端及与所述客户端进行交互的服务器,其特征在于, 所述客户端包括用于获取用户输入的节点定位请求的请求获取模块和用于将所述节点定位请求提交到所述服务器的第一通信模块; 所述服务器包括用于根据所述节点定位请求在树中查找目标节点,获取所述目标节点的路径的第二查找模块和用于将所述路径发送到客户端的第二通信模块; 所述客户端还包括用于根据所述路径将树展开的展示模块。
7.根据权利要求6所述的懒加载树中定位节点的系统,其特征在于,所述客户端还包括用于根据所述节点定位请求在客户端查找目标节点的第一查找模块; 所述第一通信模块还用于当所述第一查找模块未查找到目标节点时,将所述节点定位请求提交到所述服务器。
8.根据权利要求6所述的懒加载树中定位节点的系统,其特征在于,所述路径包括目标节点的上层节点和目标节点;所述客户端还包括用于根据所述路径加载路径中的所述上层节点和目标节点的加载模块; 所述展示模块还用于根据路径展开路径中的所述上层节点和目标节点。
9.根据权利要求8所述的懒加载树中定位节点的系统,其特征在于,所述展示模块还用于将所述目标节点置为选中状态。
10.根据权利要求6至9中任意一项所述的懒加载树中定位节点的系统,其特征在于,所述节点定位请求包括目标节点的标识信息;所述目标节点的标识信息包括节点的关键字、编码、位置码的一个或多个的组合。
全文摘要
本发明提供了一种懒加载树中定位节点的方法,该方法包括以下步骤获取用户输入的节点定位请求;根据所述节点定位请求在树中查找到目标节点,获取所述目标节点在树上的路径并返回;根据所述路径将树展开。采用上述懒加载树中定位节点的方法,能够减少服务器资源耗用和网络资源耗用,也能减少客户端的内存占用。此外,本发明还提供了一种懒加载树中定位节点的系统。
文档编号G06F17/30GK103020092SQ201110298068
公开日2013年4月3日 申请日期2011年9月28日 优先权日2011年9月28日
发明者徐新杰, 李斌 申请人:深圳市金蝶中间件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1