节点处理方法、装置、计算机可读存储介质及计算机设备与流程



1.本发明涉及计算机技术领域,具体涉及一种节点处理方法、装置、计算机可读存储介质及计算机设备。


背景技术:



2.即时通讯(instant messaging,im)是目前互联网时代最为流行的通讯方式,各种各样的即时通讯软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。
3.在即时通讯应用程序的通讯录展示界面,往往以树形控件或者列表控件的形式对联系人进行展示,如此可以使得联系人结构分布清晰,更方便用户尽快到目标联系人。
4.目前即时通讯应用程序中会为每个联系人目前,在使用树形控件或者列表控件进行数据展示时,需要先为树形控件中每个联系人建立对应的节点,如此当联系人不断增多时,节点的数量也不断增加。节点数量的不断增加使得对终端内存的占用越来越大,进而降低了终端的运行效率。


技术实现要素:



5.本技术实施例提供一种节点处理方法、装置、计算机可读存储介质及计算机设备,该方法通过设置节点池来实现子控件对应节点的回收和复用,如此只需生成显示区域中子控件对应的节点以及节点池中的节点,无需对每个子控件均生成相应节点。该方法可以大大减少控件所需节点的数量,减少了内存消耗。
6.本技术第一方面提供一种节点处理方法,包括:
7.获取目标控件的显示区域,所述目标控件包括至少一个树形控件或列表控件;
8.确定所述显示区域中包含的第一子控件集合;
9.响应于对所述显示区域中的显示内容的调节操作,获取所述调节操作在所述显示区域中指示的第二子控件集合;
10.确定所述第一子控件集合和所述第二子控件集合的交集;
11.将所述第一子控件集合中不属于所述交集的子控件对应的节点存储至节点池中;
12.通过更新后的节点池中的节点生成所述第二子控件集合中不属于所述交集的子控件。
13.相应的,本技术第二方面提供一种节点处理装置,装置包括:
14.第一获取单元,用于获取目标控件的显示区域,所述目标控件包括至少一个树形控件或列表控件;
15.第一确定单元,用于确定所述显示区域中包含的第一子控件集合;
16.第二获取单元,用于响应于对所述显示区域中的显示内容的调节操作,获取所述调节操作在所述显示区域中指示的第二子控件集合;
17.第二确定单元,用于确定所述第一子控件集合和所述第二子控件集合的交集;
18.存储单元,用于将所述第一子控件集合中不属于所述交集的子控件对应的节点存
储至节点池中;
19.生成单元,用于通过更新后的节点池中的节点生成所述第二子控件集合中不属于所述交集的子控件。
20.在一些实施例中,所述第二获取单元,包括:
21.第一获取子单元,用于响应于显示区域中接收到的滚动操作,获取所述滚动操作造成所述目标控件相对所述显示区域的位移;
22.第一确定子单元,用于根据所述位移确定所述目标控件在经过所述滚动操作后与所述显示区域中对应的第二子控件集合。
23.在一些实施例中,所述第一确定子单元,包括:
24.第一获取模块,用于获取所述第一子控件集合中包含的子控件的第一标签范围;
25.第二获取模块,用于获取所述目标控件当前状态下所有子控件的高度信息;
26.第一确定模块,用于根据所述第一标签范围、所述位移以及所述所有子控件的高度信息确定滚动操作后所述显示区域中包含的子控件的第二标签范围;
27.第二确定模块,用于根据所述第二标签范围确定第二子控件集合。
28.在一些实施例中,所述第二获取单元,包括:
29.第二获取子单元,用于响应于针对所述显示区域中目标子控件的展开操作,获取所述目标子控件包含的次级子控件信息;
30.第二确定子单元,用于根据所述次级子控件信息确定在所述展开操作后所述目标控件与所述显示区域对应的第二子控件集合。
31.在一些实施例中,所述生成单元,包括:
32.第三确定子单元,用于确定所述第二子控件集合中不属于所述交集的子控件集合为第三子控件集合,并确定所述第三子控件集合中包含元素的目标数量;
33.第三获取子单元,用于从更新后的节点池中获取所述目标数量个节点;
34.生成子单元,用于根据所述目标数量个节点生成所述第三子控件集合中的子控件。
35.在一些实施例中,所述生成子单元,包括:
36.初始化模块,用于对所述目标数量个节点进行初始化,得到所述目标数量个初始化后的节点;
37.渲染模块,用于对所述目标数量个初始化后的节点进行渲染,生成所述第三子控件集合中的子控件。
38.在一些实施例中,所述第三获取子单元,包括:
39.第三确定模块,用于确定所述第三子控件集合中每个子控件的节点类型;
40.第三获取模块,用于从所述更新后的节点池中逐一获取与所述每个子控件的节点类型对应的节点,得到所述目标数量个节点。
41.在一些实施例中,所述第三获取子单元,包括:
42.第四获取模块,用于当检测到所述更新后的节点池中的节点的数量不小于所述目标数量时,从所述更新后的节点池中获取所述目标数量个节点;
43.创建模块,用于当检测到所述更新后的节点池中的节点的数量小于所述目标数量时,在所述更新后的节点池中创建新节点,直至节点池中节点数量达到所述目标数量,以及
从所述节点池中获取所述目标数量个节点。
44.本技术第三方面还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本技术第一方面或本技术第三方面所提供的节点处理方法的步骤。
45.本技术第四方面提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可以在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本技术第一方面或本技术第三方面所提供的节点处理方法的步骤。
46.本技术第五方面提供一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在存储介质中。计算机设备的处理器从存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行第一方面或本技术第三方面所提供的节点处理方法的步骤。
47.本技术实施例提供的节点处理方法,通过获取目标控件的显示区域,目标控件包括至少一个树形控件或列表控件;确定显示区域中包含的第一子控件集合;响应于对显示区域中的显示内容的调节操作,获取调节操作在显示区域中指示的第二子控件集合;确定第一子控件集合和第二子控件集合的交集;将第一子控件集合中不属于交集的子控件对应的节点存储至节点池中;通过更新后的节点池中的节点生成第二子控件集合中不属于交集的子控件。以此,通过设置节点池,将调节操作导致无需在显示区域进行显示的子控件对应的节点回收至节点池,并从节点池中调用节点生成调节操作触发需要在显示区域进行显示的子控件。如此只需维护有限数量的节点,大大减少了所需节点的数量,减少了内存消耗,提升了系统运行效率。
附图说明
48.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
49.图1a是本技术提供的节点处理的一个场景示意图;
50.图1b是本技术提供的节点处理的另一场景示意图;
51.图2是本技术提供的节点处理方法的流程示意图;
52.图3a是本技术提供的节点处理的又一场景示意图;
53.图3b是本技术提供的节点处理的又一场景示意图;
54.图4是本技术提供的节点处理方法的又一流程示意图;
55.图5是本技术提供的节点处理装置的结构示意图;
56.图6是本技术提供的终端的结构示意图。
具体实施方式
57.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施
例,都属于本发明保护的范围。
58.本发明实施例提供一种节点处理方法、装置、计算机可读存储介质及计算机设备。其中,该节点处理方法可以使用于节点处理装置中。该节点处理装置可以集成在计算机设备中,该计算机设备可以是终端也可以是服务器。其中,终端可以为手机、平板电脑、笔记本电脑、智能电视、穿戴式智能设备、个人计算机(pc,personal computer)等设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
59.请参阅图1a,为本技术提供的节点处理的场景示意图;如图所示,目标控件10包括7个列表控件:控件1、控件2、控件3、控件5、控件6、控件7以及控件8,以及一个树形控件:控件4。此处目标控件也可以称为父控件,控件1至控件8可以称为子控件。树形控件(即控件4)还包括7个子控件,分别为:控件41、控件42、控件43、控件44、控件45、控件46以及控件47。在本技术中,控件4的子控件如控件41也称为子控件。
60.在一些实施方式中,由于计算机设备的显示屏的大小是设定的,而该目标控件10的长度在该显示屏中进行显示时,往往无法进行全部显示,如图1a所示,该显示区域11可以为计算机设备的显示屏的显示区域,可以看出的是,目标控件10在显示区域11只能显示一部分,另一部分处于非显示区域,为隐藏状态。
61.如图1a所示,目标控件10包括显示区域11对应的部分,以及显示区域11以外的非显示区域对应的部分。图中显示区域11包括控件3、控件4、控件41、控件42、控件43、控件44、控件45、控件46、控件47以及控件5这10个子控件。即在显示终端上,仅可以看到上述10个子控件,由于其他控件如控件1、控件2、控件6、控件7以及控件8都处于显示区域之外,因此在终端的显示界面中无法看到控件1、控件2、控件6、控件7以及控件8这些控件。
62.在获取到目标控件的显示区域10后,确定显示区域10中包含的第一子控件集合,即控件3、控件4、控件41、控件42、控件43、控件44、控件45、控件46、控件47以及控件5这10个子控件组成的集合。然后,当用户在显示界面上对控件进行调节操作时,例如通过滚动显示界面上的滚动条对控件进行滚动操作,获取调节操作在显示区域中指示的第二子控件集合。如图1b所示,为本技术提供的节点处理的另一场景示意图。在图1b中,调节操作在显示区域中指示的第二子控件集合为:控件41、控件42、控件43、控件44、控件45、控件46、控件47、控件5、控件6以及控件7这10个子控件组成的集合。其中,图1b中所示只是一个示例,第二子控件集合为根据目标控件包含的子控件信息、显示区域以及调节操作计算得到的子控件集合。
63.进一步地,确定第一子控件集合与第二子控件集合的交集,此处第一子控件集合与第二子控件集合的交集为控件4、控件41、控件42、控件43、控件44、控件45、控件46、控件47以及控件5组成的集合。然后将第一子控件集合中不属于交集的子控件对应的节点存储至节点池中,即将控件3对应的节点存储至节点池中。最后再通过更新后的节点池中的节点生成第二子控件集合中不属于交集的子控件组成的第三子控件集合,此处第三子控件集合为只包含控件5一个元素的集合。即根据更新后的节点池中的节点生成控件5。
64.即在本场景中,在对显示区域中的显示内容进行调节时,会根据调节前后显示区
域中显示的子控件的变化情况对子控件对应的节点进行回收以及复用,如此则无需对每个子控件生成节点,节约了内存控件,从而提升了系统运行效率。
65.需要说明的是,图1a及图1b所示的节点处理的场景示意图仅仅是几个示例,本技术实施例描述的节点处理场景是为了更加清楚地说明本技术的技术方案,并不构成对于本技术提供的技术方案的限定。本领域普通技术人员可知,随着节点处理的演变和新业务场景的出现,本技术提供的技术方案对于类似的技术问题,同样适用。
66.基于上述实施场景以下分别进行详细说明。
67.本技术实施例将从节点处理装置的角度进行描述,该节点处理装置可以集成在计算机设备中。其中,计算机设备可以是终端或服务器,如图2所示,为本技术提供的节点处理方法的流程示意图,该方法包括:
68.步骤101,获取目标控件的显示区域。
69.其中,目标控件包括至少一个树形控件或列表控件,树形控件是一种可以直观的展示层次关系的视图展示方式,列表控件是一种可以展示并列关系的视图展示方式。具体地,如windows系统(微软公司的一种操作系统)的资源管理器的左侧目录栏就是一种树形控件,或者如企业(一款即时通讯应用程序)的联系人界面也是一种树形控件,而企业的消息列表就是一种列表控件。一个列表控件可以只包含一个控件,也可以包含多个并列的控件;而树形控件一般由一个根控件以及多个层次的子控件或孙控件组成。目标控件包括至少一个树形控件或列表控件,即目标控件可以只包括一个树形控件或只包括一个列表控件,也可以包括多个树形控件以及多个列表控件。
70.目前,对于列表控件,系统会为每个列表控件创建一个节点;对于树形控件,系统会为每个层级的控件创建一个节点,具体地,系统会为根控件创建一个节点,为根控件下的每个一级子控件,为每一一级子控件下的每个二级子控件创建一个节点,如此直至树形控件中每个层级的子控件都具有其对应的节点。在采用上述列表控件或树形控件对数据进行展示时,会同时加载所有节点。如此当数据量逐渐增加,节点数量也随之迅速增加,便会大大占用系统的内存空间,导致系统处理效率下降。为解决上述数据量增加导致节点过多占用大量内存空间的问题,本技术提供一种节点处理方法,下面对该方法作进一步详细描述。
71.在本技术实施例中,目标控件包括至少一个树形控件或列表控件,因此目标控件可以称为父控件,目标控件中包含的树形控件或列表控件则称为子控件。而且在本技术的方案中,树形控件的子控件,无论是哪一级(如一级、二级等)的子控件,都统一称为目标控件的子控件。具体请继续参阅图1a,图1a中的控件4和控件41都是目标控件10的子控件。由图1a也可知,目标控件在不同的状态下其包含的子控件的数量也是不同的,当树形控件,即控件4的状态为展开状态时,目标控件包含15个子控件;当控件4的状态为收起时,目标控件包含8个子控件。其中,图1a中目标控件10只是一个示意,在实际使用中,仅有显示区域11中显示的子控件是真实可见的,其他区域的子控件是可以依据数据计算得到的,其表现也只是相关的程序数据而非图中所示图像。在相关技术中,当需要显示多个控件(至少一个树形控件或列表控件)时,需要将多个控件封装到一个列表中,而在本技术实施例中,多个控件可以独立存在,无需封装到一个列表中,多个控件可以构成一个父控件,多个控件中的每个显示单元都是父控件的子控件。当用户滚动以显示其他未显示的子控件时,整个父控件共同滚动。
72.当数据量不断增加,会导致目标控件中包含的子控件的数量不断增加。而一般情况下终端的显示界面中显示区域的尺寸是有限的,因此目标控件往往只有一部分子控件显示在终端的显示界面中,其他的子控件则予以隐藏。当用户需要使用到处于隐藏状态的子控件时,可以通过滚动目标控件的方式将隐藏的子控件滚动到显示区域进行显示。即目标控件的显示区域是一个固定尺寸的区域,请继续参阅图1a,如图1a所示,其中显示区域11为固定宽度、高度为10个控件高度之和的一个矩形区域。其中,目标控件的显示区域也对应终端中显示该目标控件的区域。当用户滚动滚动条时,显示区域对应的矩形框不发生变化,显示区域中显示的子控件会发生变化。
73.步骤102,确定显示区域中包含的第一子控件集合。
74.其中,此处确定显示区域中包含的第一子控件集合,为确定目标控件在当前状态下在显示区域中显示的子控件组成的集合。如前所述,当目标控件中包含的树形控件处于展开或者收起时,目标控件处于不同的状态;相应地,当树形控件中的任一层级的子控件在展开或收起时,目标控件也是处于不同的状态。而在一具体的时刻,目标控件的状态是可以获取的。例如在某一时刻t,目标控件中包含的树形控件的任一层级的子控件只会处于展开或是收起中一确定的状态,即此时目标控件的状态也是确定的。具体地,请继续参阅图1a,为目标控件在某一确定时刻的状态示意,此时目标控件的显示区域11中包含控件4、控件41、控件42、控件43、控件44、控件45、控件46、控件47、控件5以及控件6这10个子控件,即第一子控件集合包含上述10个子控件。若在另一状态下,例如树形控件,即控件4处于收起状态时,则显示区域包含的子控件则变为控件4、控件5、控件6、控件7以及控件8这5个控件。
75.其中,在本技术实施例中,需要对显示在显示区域的子控件创建其对应的节点,系统通过加载其对应的节点将子控件显示在终端的显示区域中。对于没有在显示区域中显示的子控件,则无需为其创建节点也无需进行加载。
76.步骤103,响应于对显示区域中的显示内容的调节操作,获取调节操作在显示区域中指示的第二子控件集合。
77.其中,如前所述,目标控件的显示区域显示的子控件不是固定不变的,用户可以通过在显示区域中执行调节操作来改变显示区域中显示的子控件,以对其他子控件进行浏览或查。
78.当接收到用户在显示区域中输入的调节操作时,对该调节操作导致的显示区域的显示变化进行计算,获取到该调节操作在显示区域中指示的第二子控件集合,即计算得出调节操作之后显示区域应当显示的子控件组成的集合。
79.在一些实施例中,响应于对显示区域中的显示内容的调节操作,获取调节操作在显示区域中指示的第二子控件集合,包括:
80.1、响应于显示区域中接收到的滚动操作,获取滚动操作造成目标控件相对显示区域的位移;
81.2、根据位移确定目标控件在经过滚动操作后与显示区域中对应的第二子控件集合。
82.其中,在本技术实施例中,可以通过滚动显示区域的内容来实现对显示区域中显示内容的调节操作。具体地,可以对显示在显示区域中的滚动条进行拖动来实现显示区域内容的滚动;也可以通过上下滑动屏幕来实现显示区域内容的滚动;还可以通过屏前手势
检测的方式实现显示区域内容的滚动。具体地,屏前手势检测方法可以通过终端采集到用户的手势信息,根据手势信息确定上翻或下翻的指令,然后根据该指令对显示区域的显示内容进行滚动。
83.滚动操作的详细信息,可以通过获取滚动操作的位移数据来确定。具体地,可以获取滚动操作造成目标控件相对显示区域的位移,其中,位移包括了距离和方向信息。例如当滚动操作为向下滚动时,目标控件相对显示区域则会向上移动。然后移动的距离可以根据滚动的距离来确定,进一步可以根据移动的距离确定上方应当隐藏的子控件的数量以及下方应当显示的子控件的数量。即可以计算得出滚动操作之后显示区域中应当显示的子控件的信息,滚动操作后的显示区域中应当显示的子控件的信息构成了第二子控件集合。
84.在一些实施例中,根据位移确定目标控件在经过滚动操作后与显示区域中对应的第二子控件集合,包括:
85.2.1、获取第一子控件集合中包含的子控件的第一标签范围;
86.2.2、获取目标控件当前状态下所有子控件的高度信息;
87.2.3、根据第一标签范围、位移以及所有子控件的高度信息确定滚动操作后显示区域中包含的子控件的第二标签范围;
88.2.4、根据第二标签范围确定第二子控件集合。
89.其中,在本技术实施例中,在确定状态下,可以对目标控件的每个子控件建立标签。例如,请继续参阅图1a,可以为标签1建立标签001、为控件2建立标签002、为控件3建立标签003、为控件4建立标签004、为控件41建立标签005、为控件42建立标签006、为控件43建立标签007、为控件44建立标签008、为控件45建立标签009、为控件46建立标签010、为控件47建立标签011、为控件5建立标签012、为控件6建立标签013、为控件7建立标签014以及为控件8建立标签015。如此,可以确定滚动操作前显示区域中包含的第一子控件集合中的子控件对应的第一标签范围为003至012。
90.然后,可以进一步获取目标控件在当前状态下所有子控件的高度信息。其中,所有子控件的高度可以相同,例如均为一个单位高度,该单位高度可以是0.5cm、1cm或者用户自行设定的一个高度。如图1a中示出,所有子控件的高度相同。子控件的高度也可以不同,如图3a所示,为本技术提供的节点处理方法的又一场景示意图,如图所示,控件a、控件b以及e的高度为两个单位高度,控件b1、控件b2等控件的高度则为一个单位高度。可以理解的是,图3a也只是一个示例,用户可以根据自身需要设定不同控件的高度。例如设定为1.5个单位高度、3个单位高度等。
91.当确定了位移为向上移动两个单位高度的距离时,则可以进一步根据位移、所有子控件的高度信息以及第一标签范围计算得到滚动操作之后显示区域中包含的子控件对应的第二标签范围。仍以图1a所示场景为例进行说明,由于位移为向上移动2个单位高度距离,而每个子控件的高度均为一个单位高度,那么标签范围就应当向后顺移2个,即第二标签范围应当为005至014。最后再根据第二标签范围确定该标签范围中的标签对应的子控件,得到第二子控件集合。
92.在一些实施例中,响应于对显示区域中的显示内容的调节操作,获取调节操作在显示区域中指示的第二子控件集合,包括:
93.a、响应于针对显示区域中目标子控件的展开操作,获取目标子控件包含的次级子
控件信息;
94.b、根据次级子控件信息确定在展开操作后目标控件与显示区域对应的第二子控件集合。
95.在本技术实施例中,可以通过点击未展开的树形控件来实现对显示区域中的显示内容的调节操作。具体地,如图3b所示,为本技术提供的节点处理方法的又一场景示意图,如图所示,树形控件b的子控件控件b1还包括其下一级的子控件:控件b11和控件b12。当用户点击显示在显示区域中的子控件b1时,触发展开显示子控件b1的下一级子控件。响应于对该子控件的展开操作,可以先获取该子控件包含的次级子控件信息。此处次级子控件信息为该子控件的下一级子控件的信息,例如b1子控件的下一级子控件为控件b11和控件b12,在展开后的状态下,控件b11和控件b12也是目标控件的子控件。此处次级子控件信息包括次级子控件的数量以及每个次级子控件的高度信息。
96.然后,在确定了次级子控件的数量以及每个次级子控件的高度信息后,可以计算该子控件下方其他子控件需要移动的距离。然后再根据该移动距离确定展开操作后显示区域应当包含的第二子控件集合。
97.在一些实施例中,还可以响应于对目标子控件的收起操作实现对显示区域显示的内容的调节。与展开操作相同,响应于收起操作的触发指令,也需要获取该子控件包含的次级子控件的信息,然后根据次级子控件的数量与高度信息重新确定收起操作之后显示界面应当包括的第二子控件集合。
98.步骤104,确定第一子控件集合和第二子控件集合的交集。
99.其中,如前所述,第一子控件集合为调节操作前显示区域中包含的子控件组成的集合,第二子控件集合为调节操作后显示区域中包含的子控件组成的集合。由于在本技术中,仅对显示在显示区域中的子控件创建节点并加载其节点进行显示,对于不显示在显示区域中的子控件,则不创建节点以及进行节点加载。因此,对于调节操作导致由显示转变为隐藏的子控件,需要对其对应的节点进行回收;而对于调节操作导致由隐藏转变为显示的子控件,需要对其创建节点并进行加载以进行显示。
100.在本技术中,先确定第一子控件集合和第二子控件集合的交集,然后再进一步根据该交集分别确定调节操作导致由显示转变为隐藏的子控件以及调节操作导致由隐藏转变为显示的子控件。
101.其中,在一些情况下,例如调节操作为滚动操作时,当滚动距离较大时,上述交集可能为空集,即滚动前显示在显示区域中的子控件全部因滚动操作而隐藏了。
102.步骤105,将第一子控件集合中不属于交集的子控件对应的节点存储至节点池中。
103.其中,由于交集中的子控件为调节操作之后仍显示在显示区域中的子控件,因此第一子控件集合中不属于交集的子控件即为调节操作后由显示转变为隐藏的子控件。在本技术实施例中,为进一步提高调节操作之后新显示在显示区域中的子控件对应的节点的创建效率,可以设置节点池进行节点的回收和复用。具体地,节点池可以为在计算机设备的缓存中设置的一个存储空间,然后可以将调节操作后由显示转变为隐藏的子控件对应的节点存储至节点池中,实现对这些节点的回收。如此当需要为其他控件创建新的节点时,可以使用回收的节点进行复用,如此则可以提高新节点的生成效率。
104.步骤106,通过更新后的节点池中的节点生成第二子控件集合中不属于交集的子
控件。
105.其中,第二子控件集合为调节操作之后显示区域中应当显示的子控件的集合,那么第二子控件集合中不属于交集的子控件即为调节操作后由隐藏转变为显示的子控件。在本技术实施例中,无需重新创建新的节点,可以从节点池中调用节点,然后根据节点池中调用的节点生成显示区域中新显示的子控件对应的节点。其中,此处节点池为将前述调节操作后由显示转变为隐藏的子控件对应的节点回收至节点池之后更新得到的节点池。即每次有节点回收至节点池中或者有节点被复用抑或有新的节点生成后,都会对节点池进行一次更新操作。
106.在一些实施例中,通过更新后的节点池中的节点生成第二子控件集合中不属于交集的子控件,包括:
107.1、确定第二子控件集合中不属于交集的子控件集合为第三子控件集合,并确定第三子控件集合中包含元素的目标数量;
108.2、从更新后的节点池中获取目标数量个节点;
109.3、根据目标数量个节点生成第三子控件集合中的子控件。
110.其中,在将第一子控件集合中不属于交集中的子控件对应的节点存储至节点池中之后。可以先计算第二子控件集合中不属于交集的子控件集合中子控件的数量,即先确定调节操作导致需要从隐藏转变为显示的子控件的数量。例如在图1a所示的场景中,当滚动操作为向下滚动3个单位高度距离时,会有3个控件:控件6、控件7和控件8,由隐藏状态转变为显示在显示区域中的状态。即确定第三子控件集合中包含元素的目标数量为3。
111.此时可以从更新后的节点池中获取相应数量个节点,然后根据该相应数量个节点生成第三子控件集合中的子控件。如前示例,可以从更新后的节点池中获取3个节点,再根据这3个节点生成三个子控件,即前述控件6、控件7以及控件8。
112.在一些实施例中,根据目标数量个节点生成第三子控件集合中的子控件,包括:
113.3.1、对目标数量个节点进行初始化,得到目标数量个初始化后的节点;
114.3.2、对目标数量个初始化后的节点进行渲染,生成第三子控件集合中的子控件。
115.其中,由于回收至节点池中的节点中包含了原子控件的相关信息,因此在复用更新后的节点池中的节点以生成新的子控件对应的节点时,需要先对节点池中取出的节点进行初始化操作。初始化操作保留了节点的框架相关的数据,包括节点的形状、尺寸、颜等数据,而删除了节点中与原控件相关的信息,如控件名称等,得到多个初始化后的节点,这些初始化后的节点也可以称为模板节点。
116.然后,再根据需要进行显示的子控件的信息对这些初始化后得到的模板节点进行渲染,得到需要进行显示的子控件对应的多个节点。
117.在一些实施例中,从更新后的节点池中获取目标数量个节点,包括:
118.a、确定第三子控件集合中每个子控件的节点类型;
119.b、从更新后的节点池中逐一获取与每个子控件的节点类型对应的节点,得到目标数量个节点。
120.其中,在本技术实施例中,会存在不同的控件所对应的节点的类型不同的情况。例如在图3a所示的场景中,控件b和控件b1的节点所对应的节点类型就不相同,具体地,控件b的高度与控件b1的高度不相同。如此,如果将控件b的节点回收至回收池中,复用该节点也
无法生成控件b1对应的节点。而且,在一些情况下,也可能存在子控件颜不同的情况,不同颜的子控件对应的节点类型也不相同,在实际应用中需要属于同一类型的节点才可以进行复用。
121.如此,在确定了第三子控件集合后,对第三子控件集合中每个子控件的节点类型进行获取,得到每个子控件对应的节点类型。然后,再逐一从节点池中提取与节点类型对应的节点进行复用。
122.在一些实施例中,从更新后的节点池中获取目标数量个节点,包括:
123.a、当检测到更新后的节点池中的节点的数量不小于目标数量时,从更新后的节点池中获取目标数量个节点;
124.b、当检测到更新后的节点池中的节点的数量小于目标数量时,在更新后的节点池中创建新节点,直至节点池中节点数量达到目标数量,以及从节点池中获取目标数量个节点。
125.其中,在本技术实施例中,也可能存在节点池中的节点不够复用的情况。例如当回收的节点的数量小于需要生成的节点数量时,便会造成前述节点不够复用的情况。具体地,例如回收了一个a类节点和两个b类节点后,其中a类节点的高度为b类节点高度的2倍,需要重新生成4个b类节点。那么此时b类节点的数量便会不足。此时便需要重新生成2个b类节点,以保证能够生成对应数量的新的节点。
126.在一些实施例中,在设置节点池时,可以先对目标控件的显示区域中显示的所有可能情况进行预测,再根据预测结果设置节点池。例如假设一共有a、b以及c三种类型的节点,如果显示区域全部显示a节点对应的子控件,可以计算出所需要的a类节点的数量a;如果显示区域全部显示b节点对应的子控件,可以计算出所需要的b类节点的数量b;如果显示区域全部显示c节点对应的子控件,可以计算出所需要的c类节点的数量c。如此,可以在节点池中设置a个a类节点、b个b类节点以及c个c类节点。如此可以避免出现上述节点不够复用的情况,由于节点不够复用时需要重新生成节点,需要耗费时间。因此按照前述方法提前设置节点池可以提升节点复用效率。由于显示区域控件有限,因此前述数量a、b以及c的值也不会过大,如此则避免了目前对所有子控件生成节点导致的内存消耗过大,提升了系统的运行效率。
127.根据上述描述可知,本技术实施例提供的节点处理方法,通过获取目标控件的显示区域,目标控件包括至少一个树形控件或列表控件;确定显示区域中包含的第一子控件集合;响应于对显示区域中的显示内容的调节操作,获取调节操作在显示区域中指示的第二子控件集合;确定第一子控件集合和第二子控件集合的交集;将第一子控件集合中不属于交集的子控件对应的节点存储至节点池中;通过更新后的节点池中的节点生成第二子控件集合中不属于交集的子控件。以此,通过设置节点池,将调节操作导致无需在显示区域进行显示的子控件对应的节点回收至节点池,并从节点池中调用节点生成调节操作触发需要在显示区域进行显示的子控件。如此只需维护有限数量的节点,大大减少了所需节点的数量,减少了内存消耗,提升了系统运行效率。
128.相应地,本技术实施例将从计算机设备的角度进一步对本技术提供的节点处理方法进行详细的描述,其中计算机设备可以为终端。如图4所示,为本技术提供的节点处理方法的另一流程示意图,该方法包括:
129.步骤201,计算机设备获取目标控件的显示区域。
130.其中,目标控件包括至少一个树形控件或列表控件。具体地,目标控件可以为文件管理场景下的控件,也可以为即时通讯客户端中显示通讯录或者通话列表的控件。在本技术实施例中,将以目标控件为即时通讯客户端中显示通讯录的控件为例进行详细介绍。此处即时通讯客户端可以为企业客户端。
131.在即时通讯客户端的通讯录界面上以目标控件的形式显示当前客户端对应的通讯录数据,由于即时通讯客户端的通讯录界面空间有限,只能显示通讯录数据中的部分数据。其他未能显示的数据便予以隐藏,用户可以通过滚动界面的方式显示隐藏的数据。
132.目前,在显示通讯录时,会对所有联系人控件或者联系人组控件都建立一个节点,并对所有节点进行加载。如此,当联系人数量不断增加时,建立节点以及记载节点所消耗的内存便会大大增加,当内存占用过多时,会导致即时通讯客户端的运行效率下降。为解决上述问题,本技术提出一种节点处理方法,仅对显示在即时通讯客户端的显示界面中的控件建立其对应的节点并进行加载,对不显示在即时通讯客户端的显示界面中的控件不建立其对应的控件,从而降低内存消耗,提升即时通讯客户端运行效率。
133.具体地,在本技术实施例中,终端会先对显示区域进行获取,以便进一步对显示区域中显示的子控件进行确定。以及在用户在对通讯录进行浏览或者查的过程中,实时确定浏览操作或者查操作造成的显示区域显示的子控件的变化。
134.终端对显示区域进行获取,具体为获取当前显示区域与目标控件中各个子节点之间的位置关系。具体地,在即时通讯客户端的通讯录界面显示目标控件之前,终端已经可以通过通讯录数据对每个控件建立其相应的标签。具体示例请参阅图3b,可以对控件a建立标签000,控件b建立标签001,控件b1建立标签0010,控件b11建立标签00100,控件b12建立标签00101,控件b2建立标签0011,控件b3建立标签0012,控件b4建立标签0013,控件b5建立标签0014,控件b6建立标签0015,控件b7建立标签0016,控件c建立标签002,控件d建立标签003以及控件e建立标签004。获取目标控件的显示区域,为获取目标控件在当前状态下的显示区域中第一个控件和最后一个控件的标签,例如图3b中显示区域11中第一个控件标签为001,最后一个控件标签为0015。其中图3b只是一个示例,在实际应用时目标控件中的子控件的数量远多于示例的数量,然而仍可以按照示例的方式进行标签的建立以及显示区域的获取。
135.步骤202,计算机设备确定显示区域中包含的第一子控件集合。
136.其中,在根据步骤201中的方法对目标控件中所有控件建立标签并且确定了目标控件当前的状态后,可以根据显示区域中包含的子控件标签信息确定显示区域中包含的第一子控件集合。
137.其中,目标控件的状态,是由目标控件中包含的树形控件的展开或收起的状态来定义的。树形控件以及树形控件中任一层级的子控件,在处于不同的状态(展开或收起)时,目标控件的状态也不同。然而在任意一个确定的时刻,目标控件的状态都是唯一确定的。在确定状态下,终端可以根据显示区域的位置确定显示区域中包含的子控件的信息,得到第一子控件集合。
138.步骤203,响应于对显示区域中的显示内容的滚动操作,计算机设备计算滚动操作之后应当在显示区域中显示的第二子控件集合。
139.其中,步骤202中获取到的第一子控件集合为滚动操作之前显示区域中包含的子控件组成的集合。滚动操作导致的显示区域中显示的子控件的变化,可以根据滚动操作导致目标控件相对显示区域的位移以及每个子控件的尺寸信息计算得到。
140.具体地,先获取滚动操作导致目标控件相对显示区域的移动方向以及移动距离,然后,根据移动距离以及每个子控件的高度计算出移动的子控件的数量。最后根据前述建立的每个子控件的标签信息确定滚动操作之后显示区域中每个子控件对应的标签信息,进而可以确定滚动操作之后显示区域中应当显示的第二子控件集合。
141.步骤204,计算机设备确定第一子控件集合和第二子控件集合的交集。
142.其中,在确定了滚动操作之前显示区域中包含的第一子控件集合以及滚动操作之后显示区域中应当显示的第二子控件集合后,终端进一步确定第一子控件集合与第二子控件集合的交集。该交集中的元素为在滚动前后均处于显示区域中的子控件。当然,该交集也可能为空集。
143.步骤205,计算机设备将第一子控件集合中不属于交集的子控件对应的节点存储至节点池中。
144.其中,在确定了第一子控件集合和第二子控件集合的交集后,便可以确定第一子控件集合中不属于交集的子控件为滚动操作导致隐藏的子控件。对于这些子控件,计算机设备将其回收至预设的节点池中。
145.步骤206,计算机设备确定第二子控件集合中不属于交集的子控件组成的第三子控件集合。
146.其中,在确定了第一子控件集合和第二子控件集合的交集后,便可以确定第二子控件集合中不属于交集的子控件为需要从隐藏状态转变为显示状态的子控件,这些子控件构成了第三子控件集合。此处隐藏状态并非表示该子控件被遮蔽,只是示意该子控件原本为不可见的子控件,经过滚动操作后,该子控件应当显示在显示区域中。然后,可以进一步确定第三子控件集合中元素的目标数量。
147.步骤207,计算机设备从节点池中提取目标数量个节点以生成第三子控件集合中的子控件。
148.其中,在确定了需要在显示区域新增显示的目标数量个子控件后。可以从节点池中提取目标数量个节点,对这些节点进行初始化,然后再进一步渲染得到需要新增显示的目标数量个子控件。
149.步骤208,计算机设备将第三子控件集合中的子控件在显示区域予以显示。
150.其中,在确定了应当由显示状态转变为隐藏状态的子控件以及应当由隐藏状态转变为显示状态的子控件后。计算机设备在即时通讯客户端的通讯录显示界面中按照上述滚动操作对当前显示区域显示的子控件进行滚动处理,将上述应当由显示状态转变为隐藏状态的子控件删除,并新增显示应当由隐藏状态转变为显示状态的子控件。当滚动操作为向下滚动时,新增显示的子控件应当显示在显示区域的下方;当滚动操作为向上滚动时新增显示的子控件应当显示在显示区域的上方。子控件的显示顺序可以按照前述建立标签的顺序进行显示。
151.根据上述描述可知,本技术实施例提供的节点处理方法,通过获取目标控件的显示区域,目标控件包括至少一个树形控件或列表控件;确定显示区域中包含的第一子控件
集合;响应于对显示区域中的显示内容的调节操作,获取调节操作在显示区域中指示的第二子控件集合;确定第一子控件集合和第二子控件集合的交集;将第一子控件集合中不属于交集的子控件对应的节点存储至节点池中;通过更新后的节点池中的节点生成第二子控件集合中不属于交集的子控件。以此,通过设置节点池,将调节操作导致无需在显示区域进行显示的子控件对应的节点回收至节点池,并从节点池中调用节点生成调节操作触发需要在显示区域进行显示的子控件。如此只需维护有限数量的节点,大大减少了所需节点的数量,减少了内存消耗,提升了系统运行效率。
152.为了更好地实施以上方法,本发明实施例还提供一种节点处理装置,该节点处理装置可以集成在服务器中。
153.例如,如图5所示,为本技术实施例提供的节点处理装置的结构示意图,该节点处理装置可以包括第一获取单元301、第一确定单元302、第二获取单元303、第二确定单元304、存储单元305以及生成单元306,如下:
154.第一获取单元301,用于获取目标控件的显示区域,目标控件包括至少一个树形控件或列表控件;
155.第一确定单元302,用于确定显示区域中包含的第一子控件集合;
156.第二获取单元303,用于响应于对显示区域中的显示内容的调节操作,获取调节操作在显示区域中指示的第二子控件集合;
157.第二确定单元304,用于确定第一子控件集合和第二子控件集合的交集;
158.存储单元305,用于将第一子控件集合中不属于交集的子控件对应的节点存储至节点池中;
159.生成单元306,用于通过更新后的节点池中的节点生成第二子控件集合中不属于交集的子控件组成的第三子控件集合。
160.在一些实施例中,第二获取单元,包括:
161.第一获取子单元,用于响应于显示区域中接收到的滚动操作,获取滚动操作造成目标控件相对显示区域的位移;
162.第一确定子单元,用于根据位移确定目标控件在经过滚动操作后与显示区域中对应的第二子控件集合。
163.在一些实施例中,第一确定子单元,包括:
164.第一获取模块,用于获取第一子控件集合中子控件的第一标签范围;
165.第二获取模块,用于获取目标控件当前状态下所有子控件的高度信息;
166.第一确定模块,用于根据第一标签范围、位移以及所有子控件的高度信息确定滚动操作后显示区域中包含的子控件的第二标签范围;
167.第二确定模块,用于根据第二标签范围确定第二子控件集合。
168.在一些实施例中,第二获取单元,包括:
169.第二获取子单元,用于响应于针对显示区域中目标子控件的展开操作,获取目标子控件包含的次级子控件信息;
170.第二确定子单元,用于根据次级子控件信息确定在展开操作后与显示区域对应的第二子控件集合。
171.在一些实施例中,生成单元,包括:
172.第三确定子单元,用于确定第二子控件集合中不属于交集的子控件集合为第三子控件集合,并确定第三子控件集合中包含元素的目标数量;
173.第三获取子单元,用于从更新后的节点池中获取目标数量个节点;
174.生成子单元,用于根据目标数量个节点生成第三子控件集合。
175.在一些实施例中,生成子单元,包括:
176.初始化模块,用于对目标数量个节点进行初始化,得到目标数量个初始化后的节点;
177.渲染模块,用于对目标数量个初始化后的节点进行渲染,生成第三子控件集合。
178.在一些实施例中,第三获取子单元,包括:
179.第三确定模块,用于确定第三子控件集合中每个子控件的节点类型;
180.第三获取模块,用于从更新后的节点池中逐一获取与每个子控件的节点类型对应的节点,得到目标数量个节点。
181.在一些实施例中,第三获取子单元,包括:
182.第四获取模块,用于当检测到更新后的节点池中的节点的数量不小于目标数量时,从更新后的节点池中获取目标数量个节点;
183.创建模块,用于当检测到更新后的节点池中的节点的数量小于目标数量时,在更新后的节点池中创建新节点,直至节点池中节点数量达到目标数量,以及从节点池中获取目标数量个节点。
184.具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
185.根据上述描述可知,本技术实施例提供的节点处理方法,通过第一获取单元301获取目标控件的显示区域,目标控件包括至少一个树形控件或列表控件;第一确定单元302确定显示区域中包含的第一子控件集合;响应于对显示区域中的显示内容的调节操作,第二获取单元303获取调节操作在显示区域中指示的第二子控件集合;第二确定单元304确定第一子控件集合和第二子控件集合的交集;存储单元305将第一子控件集合中不属于交集的子控件对应的节点存储至节点池中;生成单元306通过更新后的节点池中的节点生成第二子控件集合中不属于交集的子控件。以此,通过设置节点池,将调节操作导致无需在显示区域进行显示的子控件对应的节点回收至节点池,并从节点池中调用节点生成调节操作触发需要在显示区域进行显示的子控件。如此只需维护有限数量的节点,大大减少了所需节点的数量,减少了内存消耗,提升了系统运行效率。
186.本技术实施例还提供一种计算机设备,该计算机设备可以为终端,如图6所示,该终端可以包括射频(rf,radio frequency)电路401、包括有一个或一个以上计算机可读存储介质的存储器402、输入单元403、显示单元404、传感器405、音频电路406、无线保真(wifi,wireless fidelity)模块407、包括有一个或者一个以上处理核心的处理器408、以及电源409等部件。本领域技术人员可以理解,图6中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
187.rf电路401可用于收发信息或通话过程中,信号的接收和发送,特别地,将的下行信息接收后,交由一个或者一个以上处理器408处理;另外,将涉及上行的数据发送给
。通常,rf电路401包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(sim,subscriber identity module)卡、收发信机、耦合器、低噪声放大器(lna,low noise amplifier)、双工器等。此外,rf电路401还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(gsm,global system of mobile communication)、通用分组无线服务(gprs,general packet radio service)、码分多址(cdma,code division multiple access)、宽带码分多址(wcdma,wideband code division multiple access)、长期演进(lte,long term evolution)、、短消息服务(sms,short messaging service)等。
188.存储器402可用于存储软件程序以及模块,处理器408通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及信息互动。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器408和输入单元403对存储器402的访问。
189.输入单元403可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元403可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器408,并能接收处理器408发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元403还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
190.显示单元404可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元404可包括显示面板,可选的,可以采用液晶显示器(lcd,liquid crystal display)、有机发光二极管(oled,organic light-emitting diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器408以确定触摸事件的类型,随后处理器408根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图6中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
191.终端还可包括至少一种传感器405,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背
光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
192.音频电路406、扬声器,传声器可提供用户与终端之间的音频接口。音频电路406可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路406接收后转换为音频数据,再将音频数据输出处理器408处理后,经rf电路401以发送给比如另一终端,或者将音频数据输出至存储器402以便进一步处理。音频电路406还可能包括耳塞插孔,以提供外设耳机与终端的通信。
193.wifi属于短距离无线传输技术,终端通过wifi模块407可以帮助用户收发、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了wifi模块407,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
194.处理器408是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器408可包括一个或多个处理核心;优选的,处理器408可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器408中。
195.终端还包括给各个部件供电的电源409(比如电池),优选的,电源可以通过电源管理系统与处理器408逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源409还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
196.尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器408会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器408来运行存储在存储器402中的应用程序,从而实现各种功能:
197.获取目标控件的显示区域,目标控件包括至少一个树形控件或列表控件;确定显示区域中包含的第一子控件集合;响应于对显示区域中的显示内容的调节操作,获取调节操作在显示区域中指示的第二子控件集合;确定第一子控件集合和第二子控件集合的交集;将第一子控件集合中不属于交集的子控件对应的节点存储至节点池中;通过更新后的节点池中的节点生成第二子控件集合中不属于交集的子控件。
198.应当说明的是,本技术实施例提供的计算机设备与上文实施例中的方法属于同一构思,以上各个操作的具体实施可参见前面的实施例,在此不作赘述。
199.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
200.为此,本发明实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令
能够被处理器进行加载,以执行本发明实施例所提供的任一种方法中的步骤。例如,该指令可以执行如下步骤:
201.获取目标控件的显示区域,目标控件包括至少一个树形控件或列表控件;确定显示区域中包含的第一子控件集合;响应于对显示区域中的显示内容的调节操作,获取调节操作在显示区域中指示的第二子控件集合;确定第一子控件集合和第二子控件集合的交集;将第一子控件集合中不属于交集的子控件对应的节点存储至节点池中;通过更新后的节点池中的节点生成第二子控件集合中不属于交集的子控件。
202.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
203.其中,该计算机可读存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
204.由于该计算机可读存储介质中所存储的指令,可以执行本发明实施例所提供的任一种方法中的步骤,因此,可以实现本发明实施例所提供的任一种方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
205.其中,根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在存储介质中。计算机设备的处理器从存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2或图4的各种可选实现方式中提供的方法。
206.以上对本发明实施例所提供的一种节点处理方法、装置、计算机可读存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

技术特征:


1.一种节点处理方法,其特征在于,所述方法包括:获取目标控件的显示区域,所述目标控件包括至少一个树形控件或列表控件;确定所述显示区域中包含的第一子控件集合;响应于对所述显示区域中的显示内容的调节操作,获取所述调节操作在所述显示区域中指示的第二子控件集合;确定所述第一子控件集合和所述第二子控件集合的交集;将所述第一子控件集合中不属于所述交集的子控件对应的节点存储至节点池中;通过更新后的节点池中的节点生成所述第二子控件集合中不属于所述交集的子控件。2.根据权利要求1所述的方法,其特征在于,所述响应于对所述显示区域中的显示内容的调节操作,获取所述调节操作在所述显示区域中指示的第二子控件集合,包括:响应于显示区域中接收到的滚动操作,获取所述滚动操作造成所述目标控件相对所述显示区域的位移;根据所述位移确定所述目标控件在经过所述滚动操作后与所述显示区域对应的第二子控件集合。3.根据权利要求2所述的方法,其特征在于,所述根据所述位移确定所述目标控件在经过所述滚动操作后与所述显示区域对应的第二子控件集合,包括:获取所述第一子控件集合中包含的子控件的第一标签范围;获取所述目标控件当前状态下所有子控件的高度信息;根据所述第一标签范围、所述位移以及所述所有子控件的高度信息确定滚动操作后所述显示区域中包含的子控件的第二标签范围;根据所述第二标签范围确定第二子控件集合。4.根据权利要求1所述的方法,其特征在于,所述响应于对所述显示区域中的显示内容的调节操作,获取所述调节操作在所述显示区域中指示的第二子控件集合,包括:响应于针对所述显示区域中目标子控件的展开操作,获取所述目标子控件包含的次级子控件信息;根据所述次级子控件信息确定在所述展开操作后所述目标控件与所述显示区域对应的第二子控件集合。5.根据权利要求1所述的方法,其特征在于,所述通过更新后的节点池中的节点生成所述第二子控件集合中不属于所述交集的子控件,包括:确定所述第二子控件集合中不属于所述交集的子控件集合为第三子控件集合,并确定所述第三子控件集合中包含元素的目标数量;从更新后的节点池中获取所述目标数量个节点;根据所述目标数量个节点生成所述第三子控件集合中的子控件。6.根据权利要求5所述的方法,其特征在于,所述根据所述目标数量个节点生成所述第三子控件集合中的子控件,包括:对所述目标数量个节点进行初始化,得到所述目标数量个初始化后的节点;对所述目标数量个初始化后的节点进行渲染,生成所述第三子控件集合中的子控件。7.根据权利要求5所述的方法,其特征在于,所述从更新后的节点池中获取所述目标数量个节点,包括:
确定所述第三子控件集合中每个子控件的节点类型;从更新后的节点池中逐一获取与所述每个子控件的节点类型对应的节点,得到所述目标数量个节点。8.根据权利要求5所述的方法,其特征在于,所述从更新后的节点池中获取所述目标数量个节点,包括:当检测到更新后的节点池中的节点的数量不小于所述目标数量时,从所述更新后的节点池中获取所述目标数量个节点;当检测到所述更新后的节点池中的节点的数量小于所述目标数量时,在所述更新后的节点池中创建新节点,直至节点池中节点数量达到所述目标数量,以及从所述节点池中获取所述目标数量个节点。9.一种节点处理装置,其特征在于,所述装置包括:第一获取单元,用于获取目标控件的显示区域,所述目标控件包括至少一个树形控件或列表控件;第一确定单元,用于确定所述显示区域中包含的第一子控件集合;第二获取单元,用于响应于对所述显示区域中的显示内容的调节操作,获取所述调节操作在所述显示区域中指示的第二子控件集合;第二确定单元,用于确定所述第一子控件集合和所述第二子控件集合的交集;存储单元,用于将所述第一子控件集合中不属于所述交集的子控件对应的节点存储至节点池中;生成单元,用于通过更新后的节点池中的节点生成所述第二子控件集合中不属于所述交集的子控件。10.根据权利要求9所述的装置,其特征在于,所述第二获取单元,包括:第一获取子单元,用于响应于显示区域中接收到的滚动操作,获取所述滚动操作造成所述目标控件相对所述显示区域的位移;第一确定子单元,用于根据所述位移确定所述目标控件在经过所述滚动操作后与所述显示区域对应的第二子控件集合。11.根据权利要求10所述的装置,其特征在于,所述第一确定子单元,包括:第一获取模块,用于获取所述第一子控件集合中包含的子控件的第一标签范围;第二获取模块,用于获取所述目标控件当前状态下所有子控件的高度信息;第一确定模块,用于根据所述第一标签范围、所述位移以及所述所有子控件的高度信息确定滚动操作后所述显示区域中包含的子控件的第二标签范围;第二确定模块,用于根据所述第二标签范围确定第二子控件集合。12.根据权利要求9所述的装置,其特征在于,所述第二获取单元,包括:第二获取子单元,用于响应于针对所述显示区域中目标子控件的展开操作,获取所述目标子控件包含的次级子控件信息;第二确定子单元,用于根据所述次级子控件信息确定在所述展开操作后所述目标控件与所述显示区域对应的第二子控件集合。13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至8中任一项所述的节点处理方法的
步骤。14.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可以在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述的节点处理方法的步骤。15.一种计算机程序,其特征在于,所述计算机程序包括计算机指令,所述计算机指令存储在存储介质中,计算机设备的处理器从所述存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行权利要求1至8中任一项所述的节点处理方法的步骤。

技术总结


本发明实施例公开了一种节点处理方法、装置、计算机可读存储介质及计算机设备。方法通过获取目标控件的显示区域;确定显示区域中包含的第一子控件集合;响应于对显示区域中的显示内容的调节操作,获取调节操作在显示区域中指示的第二子控件集合;确定第一子控件集合和第二子控件集合的交集;将第一子控件集合中不属于交集的子控件对应的节点存储至节点池中;通过更新后的节点池中的节点生成第二子控件集合中不属于交集的子控件。该方法可以提升节点处理效率,在满足显示区域中控件正常显示的场景下,极大地减少了所需节点的数量,减少了内存消耗,从而提升了系统运行效率。从而提升了系统运行效率。从而提升了系统运行效率。


技术研发人员:

李娜芬 李斌 罗程 梁百怡

受保护的技术使用者:

腾讯科技(深圳)有限公司

技术研发日:

2021.06.09

技术公布日:

2022/12/26

本文发布于:2024-09-22 04:13:42,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/48605.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:控件   节点   所述   区域
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议