懒加载树中定位节点的方法和系统技术方案

技术编号:8532923 阅读:195 留言:0更新日期:2013-04-04 15:57
本发明专利技术提供了一种懒加载树中定位节点的方法,该方法包括以下步骤:获取用户输入的节点定位请求;根据所述节点定位请求在树中查找到目标节点,获取所述目标节点在树上的路径并返回;根据所述路径将树展开。采用上述懒加载树中定位节点的方法,能够减少服务器资源耗用和网络资源耗用,也能减少客户端的内存占用。此外,本发明专利技术还提供了一种懒加载树中定位节点的系统。

【技术实现步骤摘要】
懒加载树中定位节点的方法和系统
本专利技术涉及数据处理技术,尤其涉及一种懒加载树中定位节点的方法和系统。
技术介绍
在很多业务系统中,经常需要以层次结构的方式展示数据,从而产生一种类似树型的组件,树上某个节点的子节点与该节点构成从属关系。例如,很多应用系统中人员组织树就是一种树组织。树组件在初次显示时通常并不是将所有的树节点全部加载,而是只加载展开的树节点,当用户展开某个树父节点时才加载该父节点的子节点,这种加载方式的树组件称为懒加载树。在很多复杂的树型结构的数据中,由于数据量比较大,往往有定位节点的需求。图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包括用于根据节点定位请求在树中查本文档来自技高网
...

【技术保护点】
一种懒加载树中定位节点的方法,包括以下步骤:获取用户输入的节点定位请求;根据所述节点定位请求在树中查找到目标节点,获取所述目标节点在树上的路径;根据所述路径将树展开。

【技术特征摘要】
1.一种懒加载树中定位节点的方法,包括以下步骤 获取用户输入的节点定位请求; 根据所述节点定位请求在树中查找到目标节点,获取所述目标节点在树上的路径; 根据所述路径将树展开。2.根据权利要求1所述的懒加载树中定位节点的方法,其特征在于,所述获取用户输入的节点定位请求的步骤为 获取用户输入的节点定位请求,根据所述节点定位请求在客户端查找目标节点,如果在客户端未查找到目标节点,则将所述节点定位请求提交到服务器。3.根据权利要求1所述的懒加载树中定位节点的方法,其特征在于,所述路径包括目标节点的上层节点和目标节点;所述根据所述路径将树展开的步骤包括 根据所述路径加载路径中的所述上层节点和目标节点,并根据所述路径展开路径中的所述上层节点和目标节点。4.根据权利要求3所述的懒加载树中定位节点的方法,其特征在于,所述根据所述路径将树展开的步骤还包括 将所述目标节点置为选中状态。5.根据权利要求1至4中任意一项所述的懒加载树中定位节点的方法,其特征在于,所述节点定位请求包括目标节点的标识信息;所述目标节点的标识信息包括节点的关键字、编码、位置码的一个或多个的组合。6.一种懒加载树中定位节点的系统,包括客户端及与所述客户端进行交互的服务器,其特征在于, 所述客户端包括...

【专利技术属性】
技术研发人员:徐新杰李斌
申请(专利权)人:深圳市金蝶中间件有限公司
类型:发明
国别省市:

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

1