CN102253940B - 树形控件处理数据的方法和装置 - Google Patents

树形控件处理数据的方法和装置 Download PDF

Info

Publication number
CN102253940B
CN102253940B CN201010178106.2A CN201010178106A CN102253940B CN 102253940 B CN102253940 B CN 102253940B CN 201010178106 A CN201010178106 A CN 201010178106A CN 102253940 B CN102253940 B CN 102253940B
Authority
CN
China
Prior art keywords
message
request
response
tree
data
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.)
Active
Application number
CN201010178106.2A
Other languages
English (en)
Other versions
CN102253940A (zh
Inventor
李惠勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Kingdee Tianyanyun Computing Co Ltd
Original Assignee
Shenzhen Kingdee Middleware Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Kingdee Middleware Co ltd filed Critical Shenzhen Kingdee Middleware Co ltd
Priority to CN201010178106.2A priority Critical patent/CN102253940B/zh
Publication of CN102253940A publication Critical patent/CN102253940A/zh
Application granted granted Critical
Publication of CN102253940B publication Critical patent/CN102253940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种树形控件处理数据的方法和装置,属于计算机技术领域。所述方法包括:视图控制器接收消息,根据所述消息的类型将所述消息分配给相应的控制器;控制器处理所述消息,当处理完所述消息后,处理下一同类型的消息。还提供了一种树形控件处理数据的装置。通过注册在树上的各种监听器产生不同的节点请求,通过Editor编辑器产生响应,所有的请求和响应通过视图控制器来进行转发,在具体的控制器中进行请求和响应的处理,从而达到请求和响应之间的解耦并异步处理,使得树形控件具备良好的扩展性,并满足异步的延迟加载。

Description

树形控件处理数据的方法和装置
技术领域
本发明涉及计算机领域,特别涉及一种树形控件处理数据的方法和装置。
背景技术
树形控件是一种人们熟悉的UI(User Interface,用户界面)控件,可以被广泛地应用在显示层次型数据领域,web应用中使用树形控件做UI展现也是十分常见的。树形控件具有独特的扩展和折叠分支的能力,能够以较小的空间显示出大量的信息,一目了然地传达出数据之间的层次关系。凡是熟悉图形UI的用户,都能够自如地运用树形控件。现有技术中,可以使用JS(JavaScript,计算机脚本语言)实现树形控件。
在实现本发明的过程中,发明人发现现有技术中至少存在如下缺点:
树形控件发出加载请求之后,只有接收响应数据完成后才会继续处理其他指令,这就使得当树形控件的某一个或多个节点的数据量非常巨大、或者数据层级较深时,会导致web浏览器出现卡死的情况。
发明内容
为了解决数据量大的情况下web浏览器卡死的问题,提高树形控件的数据处理速度,本发明实施例提供了一种树形控件数据处理的方法和装置,所述技术方案如下:
一种树形控件处理数据的方法,所述方法包括:
视图控制器接收消息,根据所述消息的类型将所述消息分配给相应的控制器,所述消息的类型为请求和响应;
控制器处理所述消息,当处理完所述消息后,处理下一同类型的消息;
其中,当所述消息为请求时,接收消息之前包括:
树形控件根据用户的点击信号向注册在树上的监听器发送点击事件;
所述监听器根据所述点击事件生成请求;
当所述消息为响应时,接收消息之前包括:
树形控件接收外部向所述树形控件加载的数据;
编辑器将所述数据根据相应的条件封装成所述响应,并将所述响应发出;
其中,所述监听器根据所述点击事件生成请求具体包括:
所述监听器根据预设的条件判断是否需要生成请求,如果是,生成请求并将所述请求发出;如果否,结束。
编辑器将所述数据根据相应的条件封装成所述响应具体包括:
编辑器判断所述数据是否为空,如果是,结束;如果否,将所述数据根据相应的条件封装成所述响应。
一种树形控件处理数据的装置,所述装置包括:
视图控制器,用于接收消息,根据所述消息的类型将所述消息分配给相应的控制器,所述消息的类型为请求和响应;
所述控制器,用于处理所述消息,当处理完所述消息后,处理下一同类型的消息;
监听器,用于接收树形控件根据用户的点击信号向注册在树上的所述监听器发送的点击事件,并根据该点击事件生成该请求;
编辑器,用于将树形控件接收到的外部向所述树形控件加载的数据,根据相应的条件封装成所述响应,并将所述响应发出;
其中,所述监听器还用于根据预设的条件判断是否需要生成请求,如果是,生成请求并将所述请求发出;如果否,结束。
所述编辑器还用于判断所述数据是否为空,如果是,结束;如果否,将所述数据根据相应的条件封装成所述响应。
本发明实施例提供的技术方案带来的有益效果是:
通过改变消息处理流程,在接收到请求后,对其进行处理,不等待该请求的响应返回即处理下一个请求,并且在接收到响应后,应用类似的直接处理的方式达到请求和响应的异步处理,使得树形控件具备良好的扩展性,并满足异步的延迟加载。
附图说明
图1是本发明实施例1中提供一种树形控件数据处理的方法的流程图;
图2是本发明实施例1中提供的树形控件数据处理的方法请求过程的流程图;
图3是本发明实施例1中提供的树形控件数据处理的方法的响应过程的流程图;
图4是本发明实施例1中提供的扩展的Flex树的使用示意图;
图5是本发明实施例2提供的一种树形控件数据处理的装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在介绍本发明提供的树形控件处理数据的方法之前,首先对本发明所采用的树形控件进行简要的介绍:
本发明实施例中提供的树形控件采用了Flex树的扩展(即UITree),UITree继承自Flex原有的树,并在其基础上增加了如下几个功能模块:内容提供单元、展现提供单元、添加和移除监听单元以及模型映射单元。
下面分别对各个增加的功能模块进行说明:
1、内容提供单元
由于Flex树是通过数据驱动来展现给用户的,所以,如果本发明实施例采用的树形控件接收到的外部提供的数据格式不能满足Flex树的数据格式,该树形控件需要对数据格式进行转换。而内容提供单元就是提供这种数据格式转换功能的功能模块。内容提供单元实际上是一个接口,具体的数据转换实现可以预先设定或由技术人员进行二次开发。
2、展现提供单元
由于Flex树是通过数据驱动来展现给用户的,但是如果本发明实施例采用的树形控件提供的或者接收到的数据存在业务语义、或者展现给用户查看的只是数据的一小部分时,需要将数据进行转换,而展现提供单元就是提供这种转换展现功能的功能模块。展现提供单元实际上是一个接口,具体的数据展现可以预先设定或由技术人员进行二次开发。
举例说来,树形控件接收到一个“1”,而这个1为后台的控制数据,并代表“男”,所以在树形控件将这个数据展现给用户时,需要将“1”转换成“男”,而展现提供单元即为完成这一转换功能。
需要说明的是,内容提供单元的转换功能是针对Flex树绑定的数据的结构而言,而展现提供单元的转换功能是针对Flex树显示给用户的内容。
3、添加和移除监听单元
监听的主要作用是产生请求,所以要想在操纵树的时候产生请求,就需要通过添加和移除监听单元在树上添加监听,同理,当需要移除树上的监听时,也可以通过添加和移除监听单元移除树上的监听。用户可以自行定义触发监听从而产生请求的条件,本发明实施例以树监听到点击树节点信号时产生请求为例进行说明。
4、模型映射单元
该单元会定期或者在一定的触发条件下保存某一时刻树对应的数据结构,这样做的原因在于,当有新的数据从外部加载进来时,可能需要加载到树的某个位置上,而对于现有的Flex树是不保存树与其数据结构之间的映射关系的,则可能需要从头开始寻找数据需要加载的位置,而模型映射单元的功能使得上述情况下,可以直接从该单元的模型中找到数据需要加载的位置,直接将数据加载到该位置即可展现给用户,很大地提高了数据的加载效率。
实施例1
本实施例提供了一种树形控件数据处理的方法,该方法使得树形控件实现了处理数据的请求与响应之间的异步,参见图1,该方法包括:
101:视图控制器接收消息,根据该消息的类型将该消息分配给相应的控制器;
102:控制器处理该消息,当处理完该消息后,处理下一同类型的消息。
其中,该消息的类型大体可以分为请求和响应,在请求消息和响应消息中还可以根据其请求或响应的内容不同分成多种类型的消息。
该方法具体可以分为:当消息为请求时的请求过程和当消息为响应时的响应过程。
参见图2所示,请求过程具体包括:
201:树形控件接收到用户的点击信号;
其中,为了展开树形控件以查看其包括的具体数据内容,用户会通过点击树形控件的相应节点来发送信号给树形控件。
采用UITree实现的树形控件,满足了异步延迟加载树形展现的功能。
202:树形控件向注册在树上的监听器发送一个点击事件;
需要说明的是,所有注册在树上的监听器需要实现IUIListener的接口,且该点击事件还包括当前节点绑定的数据。
203:监听器根据预设的条件判断是否需要生成请求;
如果是,执行步骤204;
如果否,执行步骤207。
具体地,判断是否需要生成请求的预设的条件可以是根据节点的某部分数据,也可能是根据触发的时间,可以预先设定或由技术人员进行二次开发。
例如,当该节点数据中包含表示请求扩展的数据,则生成请求。
204:监听器根据点击事件生成请求,并将生成的请求发送至视图控制器;
具体地,监听器是根据点击事件中携带的节点生成请求的,可以是根据节点绑定的某部分数据,也可能是根据该节点触发的时间类型,也可以是上述两者的结合。例如,如果节点触发的时间在预设的允许生成请求的时间段内,则生成请求。
需要说明的是,该请求的类型可以预先设定或由技术人员进行二次开发,但,其类型必须是继承类Request的类型,该类型可以根据需求继承类Request并扩展。
205:视图控制器判断其接收到的请求的类型,并根据请求的类型交给相应的控制器对该请求进行处理;
其中,视图控制器用于分配请求,而不对请求进行处理,而控制器则用于根据视图控制器的判断结果对请求进行处理。
需要说明的是,当用户向树上注册监听器时,是通过视图控制器向树上注册的,即将所有的监听注册到视图控制器上,再由视图控制器选择合适的时机注册到树上,解耦了树与用户的具体监听器实现,让用户的关注点在事件进而产生请求,而不用关心如何将监听器注册到树上。
206:相应的控制器对其接收到的请求进行处理完成,该请求处理完成后,继续处理下一请求;
具体地,控制器根据请求类型处理完成该请求,例如,请求类型为向外部请求数据,则由控制器向外部请求数据;请求类型为展现出一个loading节点等等,则由控制器执行该请求。
207:结束。
需要说明的是,当相应的控制器对其接收到的请求进行处理完成之后,继续执行下一请求。上述步骤201-207是对请求进行处理的过程,每接收到一个请求均进行上述处理,在视图控制器处进行分配时无需进行排队,在根据消息的类型将其分配给相应的控制器后,控制器对其进行处理,该处理仅代表执行该请求,而不包括等待该请求的响应来临,且这些处理的过程的并行的,处理后,由于接收到请求的类型的不同,不同的控制器接收到不同的请求,每个控制器处理完该请求后即可继续执行下一个请求,通过这种请求和响应异步处理的方式,不仅避免了卡死的情况,而且加快了执行速度。
参见图3所示,响应过程具体包括:
301:树形控件接收到外部向其装载的数据;
302:Editor(编辑器)判断数据是否为空;
如果是,执行步骤306;
如果否,执行步骤303。
其中,Editor的作用是根据外部载入的数据产生响应。
303:Editor将数据根据相应的条件封装成响应,并发送给视图控制器;
304:视图控制器根据接收到的响应类型,交给相应的控制器;
305:相应的控制器处理接收到的响应,该响应处理完成后,继续执行下一响应;
例如,将数据装载到树形结构的相应位置上等。
306:结束。
需要说明的是,当对接收到的响应处理完成之后,继续执行下一响应。上述步骤301-206是对响应进行处理的过程,每接收到一个响应均进行上述处理,在视图控制器处进行分配时无需进行排队,在根据消息的类型将其分配给相应的控制器后,控制器对其进行处理,该处理仅代表执行该响应,而不包括等待该响应的响应来临,且这些处理的过程的并行的,处理后,由于接收到响应的类型的不同,不同的控制器接收到不同的响应,每个控制器处理完该响应后即可继续执行下一个响应,通过这种响应和响应异步处理的方式,不仅避免了卡死的情况,而且加快了执行速度。
参见图4,本发明实施例提供了一种上述扩展的Flex树形控件的使用示意图。
如1,当用户点击21时,发出请求21的数据的请求,而当前21处不存在数据,则树形控件生成一个请求并将该请求发出,并同时展开一个Loading节点;
如2,当用户点击更多节点时,树形控件发出一个请求,并同时展开一个Loading节点;
如3,当用户点击21节点时,同时发出了一个显示该节点树形的请求;
如4,当用户选择下拉列表的节点时,可以延迟加载并定位选中节点,并显示其属性信息。
上述请求依次发出,不等待请求对应的响应返回,即处理后续接收到的请求。
通过改变消息处理流程,在接收到请求后,对其进行处理,不等待该请求的响应返回即处理下一个请求,并且在接收到响应后,直接处理的方式达到请求和响应的异步处理,使得树形控件具备良好的扩展性,并满足异步的延迟加载。
实施例2
本实施例提供了一种树形控件数据处理的装置,该装置使得树形控件实现了处理数据的请求与响应之间的异步,参见图5,该装置包括:
视图控制器501,用于接收消息,根据该消息的类型将该消息分配给控制器500;
控制器500,用于处理来自视图控制器501的该消息,当处理完该消息后,处理下一同类型的消息。
该装置还包括:
监听器500,用于接收树形控件根据用户的点击信号向注册在树上的该监听器500发送的点击事件,并根据该点击事件生成该请求。
该监听器500还用于根据预设的条件判断是否需要生成请求,如果是,生成请求并将该请求发出;如果否,结束。
该装置还包括:
编辑器503,用于将树形控件接收到的外部向该树形控件加载的数据,根据相应的条件封装成该响应,并将该响应发出。
该编辑器503还用于判断该数据是否为空,如果是,结束;如果否,将该数据根据相应的条件封装成该响应。
本实施例提供的装置,与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
通过改变消息处理流程,在接收到请求后,对其进行处理,不等待该请求的响应返回即处理下一个请求,并且在接收到响应后,直接处理的方式达到请求和响应的异步处理,使得树形控件具备良好的扩展性,并满足异步的延迟加载。
本发明实施例可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,例如,计算机的硬盘、缓存或光盘中。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种树形控件处理数据的方法,其特征在于,所述方法包括:
视图控制器接收消息,根据所述消息的类型将所述消息分配给相应的控制器,所述消息的类型为请求和响应;
控制器处理所述消息,当处理完所述消息后,处理下一同类型的消息;
其中,当所述消息为请求时,接收消息之前包括:
树形控件根据用户的点击信号向注册在树上的监听器发送点击事件;
所述监听器根据所述点击事件生成请求;
当所述消息为响应时,接收消息之前包括:
树形控件接收外部向所述树形控件加载的数据;
编辑器将所述数据根据相应的条件封装成所述响应,并将所述响应发出;
其中,所述监听器根据所述点击事件生成请求具体包括:
所述监听器根据预设的条件判断是否需要生成请求,如果是,生成请求并将所述请求发出;如果否,结束。
2.根据权利要求1所述的方法,其特征在于,编辑器将所述数据根据相应的条件封装成所述响应具体包括:
编辑器判断所述数据是否为空,如果是,结束;如果否,将所述数据根据相应的条件封装成所述响应。
3.一种树形控件处理数据的装置,其特征在于,所述装置包括:
视图控制器,用于接收消息,根据所述消息的类型将所述消息分配给相应的控制器,所述消息的类型为请求和响应;
所述控制器,用于处理所述消息,当处理完所述消息后,处理下一同类型的消息;
监听器,用于接收树形控件根据用户的点击信号向注册在树上的所述监听器发送的点击事件,并根据该点击事件生成该请求;
编辑器,用于将树形控件接收到的外部向所述树形控件加载的数据,根据相应的条件封装成所述响应,并将所述响应发出;
其中,所述监听器还用于根据预设的条件判断是否需要生成请求,如果是,生成请求并将所述请求发出;如果否,结束。
4.根据权利要求3所述的装置,其特征在于,所述编辑器还用于判断所述数据是否为空,如果是,结束;如果否,将所述数据根据相应的条件封装成所述响应。
CN201010178106.2A 2010-05-18 2010-05-18 树形控件处理数据的方法和装置 Active CN102253940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010178106.2A CN102253940B (zh) 2010-05-18 2010-05-18 树形控件处理数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010178106.2A CN102253940B (zh) 2010-05-18 2010-05-18 树形控件处理数据的方法和装置

Publications (2)

Publication Number Publication Date
CN102253940A CN102253940A (zh) 2011-11-23
CN102253940B true CN102253940B (zh) 2014-07-02

Family

ID=44981211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010178106.2A Active CN102253940B (zh) 2010-05-18 2010-05-18 树形控件处理数据的方法和装置

Country Status (1)

Country Link
CN (1) CN102253940B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541544B (zh) * 2011-12-20 2016-05-04 北京数码大方科技股份有限公司 树形控件的处理方法、装置及系统
CN113656533A (zh) * 2021-08-23 2021-11-16 北京百度网讯科技有限公司 一种树形控件处理方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7225424B2 (en) * 2002-09-30 2007-05-29 Sap Ag Using relationships between contexts in model view controller design pattern
CN101470727A (zh) * 2007-12-24 2009-07-01 新奥特(北京)视频技术有限公司 一种树形数据编辑处理的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7225424B2 (en) * 2002-09-30 2007-05-29 Sap Ag Using relationships between contexts in model view controller design pattern
CN101470727A (zh) * 2007-12-24 2009-07-01 新奥特(北京)视频技术有限公司 一种树形数据编辑处理的方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
刘雄军,宁云智.浅析树形控件在ASP.NET中的使用.《消费导刊》.2009,192,194. *
利用Treeview组件创建和显示XML文档;张晓明,张伟;《现代电子技术》;20021231(第9期);54-56 *
孙卫琴.MVC概述.《精通Struts:基于MVC的Java Web设计与开发》.电子工业出版社,2004,9-11. *

Also Published As

Publication number Publication date
CN102253940A (zh) 2011-11-23

Similar Documents

Publication Publication Date Title
EP3667496B1 (en) Distributed computing system, data transmission method and device in distributed computing system
CN109194736B (zh) 消息去重方法、装置、电子设备、介质和无人车
CN102282544A (zh) 存储系统
US11321090B2 (en) Serializing and/or deserializing programs with serializable state
CN113641413A (zh) 目标模型加载更新方法及装置、可读介质和电子设备
KR101765725B1 (ko) 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법
CN111966653A (zh) 微服务调用链路数据处理方法、装置、服务器及存储介质
US20200371827A1 (en) Method, Apparatus, Device and Medium for Processing Data
CN111338769A (zh) 一种数据处理方法、装置及计算机可读存储介质
CN102253940B (zh) 树形控件处理数据的方法和装置
CN113806097A (zh) 一种数据处理方法、装置、电子设备以及存储介质
CN109284108A (zh) 数据存储方法、装置、电子设备及存储介质
CN106911784B (zh) 一种执行异步事件的方法和装置
CN111324258B (zh) 多级下拉菜单配置项内容生成方法、装置、设备和介质
CN108696559B (zh) 流处理方法及装置
CN113656359A (zh) 三维模型的轻量化方法、装置、计算机设备及存储介质
CN113034178A (zh) 多系统积分计算方法、装置、终端设备和存储介质
CN112433812A (zh) 一种虚拟机跨集群迁移方法、系统、设备及计算机介质
CN114584618A (zh) 信息交互方法、装置、设备、存储介质和系统
CN111090782A (zh) 一种图数据存储方法、装置、设备及存储介质
CN115858667A (zh) 用于同步数据的方法、装置、设备和存储介质
CN117093335A (zh) 分布式存储系统的任务调度方法及装置
CN114500546A (zh) 基于负载均衡集群的通信消息发送方法、装置及设备
CN114036085A (zh) 基于ddr4的多任务读写调度方法、计算机设备及存储介质
CN112615773A (zh) 一种消息处理方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: Shenzhen Kingdee middleware Limited by Share Ltd.

Address before: 518057 Guangdong City, Nanshan District province high tech Zone in the middle of the industrial zone of the sparrow tower M-6 building, floor 1, area 3, second, 4

Patentee before: Shenzhen Kingdee Middleware Co., Ltd.

CP01 Change in the name or title of a patent holder

Address after: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: Shenzhen Kingdee tianyanyun computing Co., Ltd.

Address before: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee before: Shenzhen Kingdee middleware Limited by Share Ltd.

CP01 Change in the name or title of a patent holder