CN109683939A - 组件对象更新方法、装置以及存储介质 - Google Patents
组件对象更新方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN109683939A CN109683939A CN201811637117.5A CN201811637117A CN109683939A CN 109683939 A CN109683939 A CN 109683939A CN 201811637117 A CN201811637117 A CN 201811637117A CN 109683939 A CN109683939 A CN 109683939A
- Authority
- CN
- China
- Prior art keywords
- component
- item
- list
- attribute
- list items
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02W—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO WASTEWATER TREATMENT OR WASTE MANAGEMENT
- Y02W90/00—Enabling technologies or technologies with a potential or indirect contribution to greenhouse gas [GHG] emissions mitigation
Abstract
本公开是关于一种组件对象更新方法,属于界面交互技术领域。所述方法包括:在应用界面中展示第一组件对象,获取前端框架提供的更新数据,根据该更新数据对第一列表项的数据项进行更新,根据第一列表项的数据项中的目标属性值更新显示该第一组件对象。本公开在对第一组件对象更新时,可以直接更新对应目标组件对象中的目标属性值,不需要对整个组件对象进行重新渲染,减少了终端重新渲染的数据量,提高了终端的渲染效率,减少了更新过程中需要的渲染时间。
Description
技术领域
本公开涉及界面交互技术领域,特别涉及一种组件对象展示方法、装置以及存储介质。
背景技术
随着界面交互技术领域的发展,长列表在终端中很常见,如何在终端中快速生成长列表并将其展示在终端中,成为本领域技术人员亟待解决的问题。
相关技术中,在终端中展示无限列表的组件对象的过程通常是通过前端框架下载无限列表中的数据和模板,将这些数据和模板发送给客户端;客户端根据这些数据,通过一系列的表达式,计算得出模板中所需要的属性值,将计算得到的各个属性值和模板进行展开,生成长列表中需要展示的各个列表项的组件对象,将组件对象展示在终端中。
发明内容
本公开实施例提供了一种组件对象更新方法、装置及存储介质。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种组件对象更新方法,所述方法包括:
在应用界面中展示第一组件对象所述第一组件对象是所述应用界面对应的,组件结构相同的N个列表项中的第一列表项对应的组件对象;所述第一组件对象是根据所述N个列表项的公共组件模板,以及所述第一列表项的数据项生成的;所述公共组件模板包含的公共组件属性是所述N个列表项各自的组件属性中的相同属性;所述第一列表项的数据项中包含所述第一列表项的各项组件属性中,除了所述公共组件属性之外的其它组件属性;所述组件结构用于指示对应的列表项中的各个节点组件之间的结构关系;
获取前端框架提供的更新数据,所述更新数据用于指示所述第一组件对象中发生更新的目标组件属性,以及所述第一组件对象的所述目标组件属性更新后的目标属性值;
根据所述更新数据对所述第一列表项的数据项进行更新,所述第一列表项的更新后的数据项中包含所述目标组件属性和所述目标属性值;
根据所述第一列表项的数据项中的所述目标属性值更新显示所述第一组件对象。
可选的,所述根据所述更新数据对所述第一列表项的数据项进行更新,包括:
当所述目标组件属性属于所述第一列表项的数据项中包含的组件属性时,将所述第一列表项的数据项中包含的所述目标组件属性的属性值更新为所述目标属性值;
或者,
当所述目标组件属性属于所述公共组件属性时,在所述第一列表项的数据项中添加所述更新数据指示的所述目标组件属性和所述目标属性值。
可选的,当所述目标组件属性属于所述公共组件属性时,所述方法还包括:
将所述公共组件模板中的所述目标组件属性剔除,获得更新后的所述公共组件模板;
在其它列表项各自的数据项中增加从所述公共组件模板中剔除的所述目标组件属性,所述其它列表项是所述N个列表项中除了所述第一列表项之外的各个列表项。
可选的,所述方法还包括:
获取触发指令,所述触发指令用于触发取消所述第一组件对象的显示;
将所述第一组件对象回收到回收池。
可选的,所述方法还包括:
当所述触发指令还用于触发显示第二列表项的组件对象,且所述第二列表项是所述N个列表项中,除了所述第一列表项之外的另一列表项时,获取所述第二列表项的数据项;
根据所述第二列表项的数据项对所述第一组件对象进行更新,获得所述第二列表项对应的第二组件对象;
显示所述第二组件对象。
可选的,在应用界面中展示第一组件对象之前,所述方法还包括:
获取所述前端框架提供的,所述应用界面的各个列表项的展开数据,所述展开数据指示对应列表项的组件结构和各项组件属性;
根据所述各个列表项各自的组件结构确定所述各个列表项中的所述N个列表项;
根据所述N个列表项各自的组件结构和各项组件属性生成所述公共组件模板,以及所述N个列表项各自的数据项。
可选的,所述在应用界面中展示第一组件对象,包括:
获取到显示所述第一组件对象的指令时,根据所述公共组件模板以及所述第一列表项的数据项渲染显示所述第一组件对象。
可选的,所述组件结构包括对应列表项的文档对象模型DOM结构。
根据本公开实施例的第二方面,提供了一种组件对象更新装置,其特征在于,所述装置包括:
展示模块,用于在应用界面中展示第一组件对象,所述第一组件对象是所述应用界面对应的,组件结构相同的N个列表项中的第一列表项对应的组件对象;所述第一组件对象是根据所述N个列表项的公共组件模板,以及所述第一列表项的数据项生成的;所述公共组件模板包含的公共组件属性是所述N个列表项各自的组件属性中的相同属性;所述第一列表项的数据项中包含所述第一列表项的各项组件属性中,除了所述公共组件属性之外的其它组件属性;所述组件结构用于指示对应的列表项中的各个节点组件之间的结构关系;
第一获取模块,用于获取前端框架提供的更新数据,所述更新数据用于指示所述第一组件对象中发生更新的目标组件属性,以及所述第一组件对象的所述目标组件属性更新后的目标属性值;
第一更新模块,用于根据所述更新数据对所述第一列表项的数据项进行更新,所述第一列表项的更新后的数据项中包含所述目标组件属性和所述目标属性值;
第二更新模块,用于根据所述第一列表项的数据项中的所述目标属性值更新显示所述第一组件对象。
可选的,所述第一更新模块,具体用于,
当所述目标组件属性属于所述第一列表项的数据项中包含的组件属性时,将所述第一列表项的数据项中包含的所述目标组件属性的属性值更新为所述目标属性值;
或者,
当所述目标组件属性属于所述公共组件属性时,在所述第一列表项的数据项中添加所述更新数据指示的所述目标组件属性和所述目标属性值。
可选的,当所述目标组件属性属于所述公共组件属性时,所述装置还包括:
第二获取模块,用于将所述公共组件模板中的所述目标组件属性剔除,获得更新后的所述公共组件模板;
增加模块,用于在其它列表项各自的数据项中增加从所述公共组件模板中剔除的所述目标组件属性,所述其它列表项是所述N个列表项中除了所述第一列表项之外的各个列表项。
可选的,所述装置还包括:
第三获取模块,用于获取触发指令,所述触发指令用于触发取消所述第一组件对象的显示;
回收模块,用于将所述第一组件对象回收到回收池。
可选的,所述装置还包括:
第四获取模块,用于当所述触发指令还用于触发显示第二列表项的组件对象,且所述第二列表项是所述N个列表项中,除了所述第一列表项之外的另一列表项时,获取所述第二列表项的数据项;
获得模块,用于根据所述第二列表项的数据项对所述第一组件对象进行更新,获得所述第二列表项对应的第二组件对象;
第一显示模块,用于显示所述第二组件对象。
可选的,所述装置还包括:
第五获取模块,用于在应用界面中展示第一组件对象之前,获取所述前端框架提供的,所述应用界面的各个列表项的展开数据,所述展开数据指示对应列表项的组件结构和各项组件属性;
确定模块,用于在应用界面中展示第一组件对象之前,根据所述各个列表项各自的组件结构确定所述各个列表项中的所述N个列表项;
生成模块,用于在应用界面中展示第一组件对象之前,根据所述N个列表项各自的组件结构和各项组件属性生成所述公共组件模板,以及所述N个列表项各自的数据项。
可选的,所述展示装置具体用于,
获取到显示所述第一组件对象的指令时,根据所述公共组件模板以及所述第一列表项的数据项渲染显示所述第一组件对象。
可选的,所述组件结构包括对应列表项的文档对象模型DOM结构。
根据本公开实施例的第三方面,提供了一种组件对象更新装置,所述装置包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
在应用界面中展示第一组件对象,所述第一组件对象是所述应用界面对应的,组件结构相同的N个列表项中的第一列表项对应的组件对象;所述第一组件对象是根据所述N个列表项的公共组件模板,以及所述第一列表项的数据项生成的;所述公共组件模板包含的公共组件属性是所述N个列表项各自的组件属性中的相同属性;所述第一列表项的数据项中包含所述第一列表项的各项组件属性中,除了所述公共组件属性之外的其它组件属性;所述组件结构用于指示对应的列表项中的各个节点组件之间的结构关系;
获取前端框架提供的更新数据,所述更新数据用于指示所述第一组件对象中发生更新的目标组件属性,以及所述第一组件对象的所述目标组件属性更新后的目标属性值;
根据所述更新数据对所述第一列表项的数据项进行更新,所述第一列表项的更新后的数据项中包含所述目标组件属性和所述目标属性值;
根据所述第一列表项的数据项中的所述目标属性值更新显示所述第一组件对象。
根据本公开实施例的第四方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包含可执行指令,终端中的处理器调用所述可执行指令以实现上述第一方面或者第一方面的任意可选实现方式所述的组件对象更新方法。
本公开实施例提供的技术方案至少包括以下有益效果:
通过在应用界面中展示第一组件对象,获取前端框架提供的更新数据,根据该更新数据对第一列表项的数据项进行更新,根据第一列表项的数据项中的目标属性值更新显示该第一组件对象,在第一组件对象更新时,可以直接更新对应目标组件对象中的目标属性值,不需要对整个组件对象进行重新渲染,减少了终端重新渲染的数据量,提高了终端的渲染效率,减少了更新过程中需要的渲染时间。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开实施例提供的一种终端的结构框图;
图2是本公开实施例提供的一种终端中长列表类型的应用界面的界面示意图;
图3是本公开实施例提供的一种组件对象更新方法的方法流程图;
图4是本公开实施例提供的一种组件对象更新方法的方法流程图;
图5是图4所示实施例涉及的的一种长列表中结构相同的两个列表项各自的界面示意图;
图6是图4所示实施例涉及的一种公共组件模板的界面示意图;
图7是图4所示实施例涉及的一种显示第一组件对象的界面示意图;
图8是图4所示实施例涉及的一种终端中展示第一组件对象的界面示意图;
图9是本公开实施例提供的一种组件对象更新方法的方法流程图;
图10是图9所示实施例涉及的一种终端中显示第一组件对象的界面示意图;
图11是本公开实施例提供的一种组件对象更新装置的框图;
图12是本公开根据一示例性实施例示出的一种用于组件对象更新装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开提供的方案可以用于日常生活中终端进行展示长列表的场景中,为了便于理解,下面首先对本公开实施例涉及的应用场景进行简单介绍。
人们日常生活中,在使用终端(如智能手机)时,不可避免的需要在终端中显示长列表类型的应用界面,并在该应用界面中进行操作,使得该应用界面进行变化等等。
请参考图1,其示出了本公开实施例提供的一种终端的结构框图。该终端100中包含但不限于前端框架110和客户端120。
前端框架110可以从网络中下载长列表中各个组件对象的数据信息以及对应的模板信息,并将其发送给客户端120。
客户端120是可以将前端框架发送的数据信息与模板信息进行结合,创建处长列表中的组件对象,并展示在终端中。
前端框架与客户端之间可以实现信息的传递交互。通常,长列表的展示方式是通过终端中的前端框架下载长列表中各个列表项的数据信息以及对应的模板信息,将各个列表项的数据信息以及对应的模板信息进行打包后,发送给终端中的客户端,客户端在接收到各个列表项的数据信息以及对应的模板信息后,根据特定的表达式,计算出各个列表项的数据信息对应各个列表项的属性值,根据计算得到的属性值以及对应的模板信息创建相应的各个列表项对应的各个组件对象,进而将各个组件对象展示在终端中。
比如,请参考图2,其示出了本公开实施例提供的一种终端中长列表类型的应用界面的界面示意图。如图2所示,在该应用界面20中,包含了第一功能控件201,第二功能控件202,第一组件对象203,第二组件对象204。用户可以在该应用界面20中点击相应的第一功能控件201或者第二功能控件202,使得该应用界面20中第一组件对象203发生更新,也就是说,使得终端中展示的长列表的第一组件对象203发生更新。或者,用户也可以通过滑动操作,使得第一组件对象203消失,第二组件对象204展示在终端的界面中,从而使得该应用界面发生变化。其中,第二组件对象204是实时创建显示的。
可选的,图2所示的终端可以是具有显示屏、前端框架以及客户端的终端设备,比如,该终端可以是智能手机、平板电脑、电子书阅读器、智能眼镜、智能手表、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机以及台式电脑等等。
对于上述长列表的第一组件对象发生更新的过程,在相关技术中,终端的前端框架可以检测到该长列表中对应具体的数据发生更新,将发生更新后的数据发送给客户端,客户端利用发生更新后的数据对之前获得的数据进行更新后,再次利用更新后相应的第一组件对象的数据重新计算该第一组件对象的属性值,利用重新计算的属性值重新渲染终端中展示的第一组件对象,因此在重新渲染时,由于需要将第一组件对象中不需要变化的数据也进行重新渲染,即,需要重新渲染整个第一组件对象,增加了客户端重新渲染的数据量,一定程度上影响了重新渲染的效率,使得重新渲染花费的时间较长。
为解决上述相关技术中存在的问题,本公开提供了一种组件对象更新方法,请参考图3,其示出了本公开实施例提供的一种组件对象更新方法的方法流程图。该方法可以应用于图1或者图2所示的终端中;可选的,该方法可以由终端通过终端中安装的客户端来执行。如图3所示,该方法可以包括如下步骤:
在步骤301中,在应用界面中展示第一组件对象。
其中,该第一组件对象可以是终端中应用界面对应的,组件结构相同的N个列表项中的第一列表项对应的组件对象;该第一组件对象可以是根据这N个列表项的公共组件模板,以及第一列表项的数据项生成的;该公共组件模板包含的公共组件属性可以是这N个列表项各自的组件属性中的相同属性;该第一列表项的数据项中可以包含第一列表项的各项组件属性中,除了公共组件属性之外的其它组件属性;组件结构可以用于指示对应的列表项中的各个节点组件之间的结构关系。
在步骤302中,获取前端框架提供的更新数据。
其中,该更新数据可以用于指示上述第一组件对象中发生更新的目标组件属性,以及该第一组件对象的目标组件属性更新后的目标属性值。
在步骤303中,根据该更新数据对第一列表项的数据项进行更新。
其中,第一列表项的更新后的数据项中包含所述目标组件属性和所述目标属性值。
在步骤304中,根据第一列表项的数据项中的目标属性值更新显示该第一组件对象。
可选的,上述根据更新数据对第一列表项的数据项进行更新,包括:
当目标组件属性属于第一列表项的数据项中包含的组件属性时,将第一列表项的数据项中包含的目标组件属性的属性值更新为目标属性值;
或者,
当目标组件属性属于公共组件属性时,在第一列表项的数据项中添加更新数据指示的目标组件属性和目标属性值。
可选的,当上述目标组件属性属于公共组件属性时,该方法还包括:
将公共组件模板中的目标组件属性剔除,获得更新后的公共组件模板;
在其它列表项各自的数据项中增加从公共组件模板中剔除的目标组件属性,其它列表项是N个列表项中除了第一列表项之外的各个列表项。
可选的,该方法还包括:
获取触发指令,触发指令用于触发取消第一组件对象的显示;
将第一组件对象回收到回收池。
可选的,该方法还包括:
当触发指令还用于触发显示第二列表项的组件对象,且第二列表项是N个列表项中,除了第一列表项之外的另一列表项时,获取第二列表项的数据项;
根据第二列表项的数据项对第一组件对象进行更新,获得第二列表项对应的第二组件对象;
显示第二组件对象。
可选的,在应用界面中展示第一组件对象之前,该方法还包括:
获取前端框架提供的,应用界面的各个列表项的展开数据,展开数据指示对应列表项的组件结构和各项组件属性;
根据各个列表项各自的组件结构确定各个列表项中的N个列表项;
根据N个列表项各自的组件结构和各项组件属性生成公共组件模板,以及N个列表项各自的数据项。
可选的,在应用界面中展示第一组件对象,包括:
获取到显示第一组件对象的指令时,根据公共组件模板以及第一列表项的数据项渲染显示第一组件对象。
可选的,该组件结构可以包括对应列表项的文档对象模型DOM结构。
综上所述,本公开通过在应用界面中展示第一组件对象,获取前端框架提供的更新数据,根据该更新数据对第一列表项的数据项进行更新,根据第一列表项的数据项中的目标属性值更新显示该第一组件对象,在第一组件对象更新时,可以直接更新对应目标组件对象中的目标属性值,不需要对整个组件对象进行重新渲染,减少了终端重新渲染的数据量,提高了终端的渲染效率,减少了更新过程中需要的渲染时间。
在一种可能实现的方式中,本公开提供了一种组件对象更新方法,请参考图4,其示出了本公开实施例提供的一种组件对象更新方法的方法流程图。该方法可以应用于图1或者图2所示的终端中,进一步的,可以由该终端中的客户端执行,如图4所示,该方法可以包括如下步骤:
在步骤401中,获取前端框架提供的,应用界面的各个列表项的展开数据。
其中,该展开数据可以指示对应列表项的组件结构和各项组件属性。
在一种可能实现的方式中,该应用界面是指在终端的显示屏中即将展示的虚拟应用界面,该虚拟应用界面可以属于长列表类型。该应用界面的各个列表项的组件对象需要通过展开数据得到,该展开数据可以指示展示的各个列表项的组件结构和各项组件属性。前端框架可以通过网络接口下载相应的应用界面的各个列表项的组件模板和对应的组件数据,将下载的组件模板和对应的组件数据进行展开,得到该应用界面的各个列表项的展开数据,将该展开数据发送给客户端,相应的,客户端可以获取到该前端框架提供的展开数据。
比如,以该应用界面的各个列表项的个数是两个为例,该两个列表项最终可以生成两个列表项对应的两个组件对象,该两个组件对象的创建需要有在对应的网络中的一个组件模板和两个组件个各自对应的组件数据,该前端框架可以通过网络接口将这两个组件对象需要的一个组件模板和两个组件数据下载下来,并进行展开,生成两个列表项的展开数据,将该展开数据发送给客户端,客户端就可以获取相应的展开数据。
在步骤402中,根据各个列表项各自的组件结构确定各个列表项中的N个列表项。
其中,该N个列表项是指各个列表项各自的组件结构中拥有相同的组件结构的N个列表项,且N是不小于1的自然数。
可选的,该客户端可以确定出多组N个列表项,且各组的N个列表项中N的数量可以不相同。比如,各个列表项的个数为100个,该客户端可以确定第一组的N个列表项为10个列表项,第二组的N个列表项为30个列表项,第三组的N个列表项为10个列表项,第四组的N个列表项为50个列表项等等。
在一种可能实现的方式中,客户端可以通过该展开数据指示的内容,获得各个列表项对应的组件结构和各项组件属性。可选的,该组件结构可以包括对应列表项的文档对象模型DOM结构。该文档对象模型DOM结构可以包括该树结构中各个节点的标签、各个节点总共的个数、DOM树结构的深度、每一层DOM树结构的节点个数、以及各个节点所在DOM树结构的位置等。该客户端可以根据这些结构特性,确定出前端框架发送过来的展示数据中的N个列表项。
比如,以列表项的个数为10个,以DOM树结构的深度为确定条件举例,客户端通过该展开数据指示的内容,获得这10个列表项对应的组件结构,该客户端可以进一步得到该10个列表项对应的DOM树结构的深度,若该10个列表项对应的DOM树结构的深度分别为[5、12、12、5、12、12、12、5、12、5],则确定其中深度为5的4个列表项为一组列表项,深度为12的6个列表项为一组列表项。当然,该N个列表项的确定条件可以为上述DOM结构的条件的一种或者多种组合,本公开实施例对此并不加以限定。
在步骤403中,根据N个列表项各自的组件结构和各项组件属性生成公共组件模板,以及N个列表项各自的数据项。
可选的,该公共组件模板包含的公共组件属性是N个列表项各自的组件属性中的相同属性;第一列表项的数据项中包含第一列表项的各项组件属性中,除了公共组件属性之外的其它组件属性;组件结构用于指示对应的列表项中的各个节点组件之间的结构关系。
在一种可能实现的方式中,客户端可以为这N个列表项创建公共组件模板以及数据列表。比如,以N=2为例,此时有两个列表项的组件结构是相同的,分别为列表项一,列表项二。请参考图5,其示出了本公开实施例涉及的一种长列表中结构相同的两个列表项各自的界面示意图。如图5所示,其中包含了列表项一501,列表项二502,组件一503,组件二504,组件三505,组件四506,组件一的属性一507,组件一的属性二508,组件二的属性一509,组件二的属性二510,组件三的属性一511,组件三的属性二512,组件四的属性一513,组件四的属性二514。其中,该列表项一501包含组件一503和组件二504,列表项二502包含组件三505和组件四506,其中各个组件对应有自己的属性。客户端在确定这两个列表项的结构相同后,可以将列表项一501与列表项二502中处于相同位置的各个组件以及各个组件各自包含的属性进行对比。
比如,用组件一503和组件三505进行对比,以及组件二504和组件四506进行对比,得到组件一503与组件三505的属性一和属性二都相同,组件二504和组件四506的属性一和属性二都不同,客户端可以将其中组件一503与组件三505的属性一、属性二保留在公共模板中,即,将N个列表项中相同位置的各个组件相同的属性保存在创建的公共组件模板中。
请参开图6,其示出了本公开实施例涉及图5的一种公共组件模板的界面示意图。如图6所示,公共组件模板600中包含了组件一601,组件二602,组件一的属性一603,组件一的属性二604。客户端可以为图5所示的两个列表项创建一个如图6所示的公共组件模板600。可选的,图5所示的组件一和组件三中,他们各自的属性一和属性二对应的属性值如果也相同,图6中的公共组件模板中的属性一603和属性二604中可以有相应的属性值。
在一种可能实现的方式中,客户端还可以将上述比对结果中不同的属性和/或属性值保存为各自列表项对应的数据项,并且可以为这些组件的不同属性和/或相应的属性值建立数据列表,用于存储这些不同的属性和/或属性值。比如,上述图5中,组件二的属性一,组件二的属性二,组件四的属性1,组件四的属性二等等,客户端可以将这些不相同的属性和/或属性值保存在创建的数据列表中。请参考表1,其示出了本公开实施例涉及图5提供的一种数据列表。
列表项一/组件二/属性一/属性值 |
列表项一/组件二/属性二/属性值 |
列表项二/组件四/属性一/属性值 |
列表项二/组件四/属性二/属性值 |
…… |
如表1所示,其中数据列表中的数据项包含了各个不同的属性和/或属性值,以及其对应的数据结构路径等,以便于客户端可以得知该属性或者属性值是属于哪个列表项中的子组件的。
可选的,客户端在完成对各组N个列表项建立公共组件模板,以及将各个列表项中的各个不同的属性和/或属性值存放在数据列表中之后,该客户端可以将接收的前端框架发送的应用界面的各个列表项的展开数据进行销毁,进一步降低内存的消耗。
在步骤404中,获取到显示第一组件对象的指令时,根据公共组件模板以及第一列表项的数据项渲染显示第一组件对象。
其中,该第一组件对象是根据N个列表项的公共组件模板,以及第一列表项的数据项生成的。
可选的,该第一组件对象可以是该应用界面对应的,组件结构相同的N个列表项中的第一列表项对应的组件对象,该客户端可以获取到相应的,在终端中显示该第一组件对象的指令,该客户端通过查找为这N个列表项创建的公共组件模板,得到该公共组件模板;以及该客户端可以通过查找相应的数据列表中,第一组件对象所拥有的不同于其他列表项的属性和/或属性值,该客户端可以根据查找到的公共组件模板以及第一列表项的数据项渲染显示第一组件对象。
比如,以图5中的2个列表项,以及对应列表项中不同的属性和/或属性值为例,当第一组件对象为列表项一时,该客户端可以查找到为列表项一和列表项二创建的公共组件模板,并在数据列表中查找到列表项一中不同的数据项(比如,组件二的属性一等等),该客户端可以根据获取到的公共组件模板和数据项渲染出第一组件对象。请参考图7,其示出了本公开实施例涉及的一种显示第一组件对象的界面示意图。如图7所示,其中包含了第一组件对象700,列表项一701,组件一702,组件二703,组件一的属性一704,组件一的属性二705,组件二的属性一706,组件二的属性二707。其中,公共组件模板中的添加第一列表项对应的数据项,即,在公共组件模板中添加组件二的属性一706和组件二707,从而渲染得到该第一组件对象。
在步骤405中,获取前端框架提供的更新数据。
其中,更新数据用于指示第一组件对象中发生更新的目标组件属性,以及第一组件对象的目标组件属性更新后的目标属性值。
在一种可能实现的方式中,用户可以通过一些操作,使得终端的显示界面中展示的第一组件对象的属性值发生变化,从而使得客户端需要重新渲染响应的第一组件对象。当第一组件对象的属性值发生变化时,前端框架可以监听到该属性值的变化,获取相应的变化的属性以及变化的数据,在前端框架中生成第一组件对象更新后的展开数据,并将该展开数据中的发生更新的属性值以及其在第一组件对象中的对应位置一起打包作为更新数据,发送给客户端,相应的,客户端可以获取到前端框架提供的更新数据。
比如,请参考图8,其示出了本公开实施例涉及的一种终端中展示第一组件对象的界面示意图。如图8所示,其中包含了第一组件对象801,组件一802,用户可以通过点击组件一802,使得组件一802的颜色属性值从原始的颜色一变为了颜色二,这时,终端的前端框架可以监听到对应的属性值发生变化的信号,获取该变化后的数据,并在前端框架中生成第一组件对象801更新后的展开数据,并将该展开数据中的发生更新的属性值以及其在第一组件对象801中的对应位置一起打包作为更新数据,例如,前端框架若将更新数据以“第一组件对象/组件一/颜色/颜色二”这样的格式发送给客户端,相应的,客户端可以获取相同的前端框架提供的更新数据。
在步骤406中,根据更新数据对第一列表项的数据项进行更新。
其中,该第一列表项的更新后的数据项中包含目标组件属性和目标属性值。
在一种可能实现的方式中,该客户端可以对前端框架发送的更新数据进行识别以及解析,得到该更新数据中包含的内容,若以图8为例,接收到的更新数据可以为“第一组件对象/组件一/颜色/颜色二”。
在一种可能实现的方式中,当目标组件属性属于第一列表项的数据项中包含的组件属性时,将第一列表项的数据项中包含的目标组件属性的属性值更新为目标属性值。以上述获取的更新数据为例,相应的目标组件属性可以为:第一组件对象/组件一/颜色,目标属性值可以为颜色二。客户端根据获取的目标组件属性,在第一列表项的数据项中查找到相同的目标组件属性,将其对应的属性值更新为目标属性值即可。比如,上述第一列表项的数据项在数据列表中的内容为:“第一组件对象/组件一/颜色/颜色一”,客户端找到相应的目标组件属性后,将其中的颜色一更新为颜色二,更新后的数据项在数据列表中的内容为:“第一组件对象/组件一/颜色/颜色二”。
在一种可能实现的方式中,当目标组件属性属于公共组件属性时,在第一列表项的数据项中添加更新数据指示的目标组件属性和目标属性值。可选的,如果客户端在数据列表中没有找到该目标组件属性,该目标组件属性是属于公共组件属性时,客户端可以将在第一列表项中的数据项中添加该目标组件属性,将对应的目标属性值添加在对应的目标组件属性中,然后在N个列表项中,除第一列表项之外的其余列表项的数据项中,也添加目标组件属性,并以公共组件模板中的目标组件属性的属性值作为对应的属性值。或者,客户端也可以先将各个目标组件属性添加到N个列表项的数据项中,然后再将相应的第一列表项的目标组件属性的属性值替换为目标属性值。本公开实施例对此并不加以限定。
在一种可能实现的方式中,将公共组件模板中的目标组件属性剔除,获得更新后的公共组件模板;在其它列表项各自的数据项中增加从公共组件模板中剔除的目标组件属性,其它列表项是所述N个列表项中除了第一列表项之外的各个列表项。可选的,在上述更新了目标属性值之后,客户端可以将为N个列表项创建的模板中的目标组件属性剔除,将更新后的公共组件模板重新作为该N个列表项的公共组件模板。此处在其他列表项各自的数据相中增加公共组件模板中剔除的目标组件属性的过程与上述直接进行添加的过程类似,此处不再赘述。或者,剔除的步骤可以放在对各个列表项的数据项进行更新之前,本公开对此并不加以限定。
在步骤407中,根据第一列表项的数据项中的目标属性值更新显示第一组件对象。
当给第一组件对象需要更新显示时,客户端可以直接获取到第一列表项的数据项中的目标属性值,在第一组件对象中,找到相应的目标属性,将该目标属性对应的属性值更新为目标属性值,进而更新显示第一组件对象。
需要说明的是,上述在应用界面展示第一组件对象时,该终端可以用已经创建好的公共组件模板预先创建相应的几个实例,并存储起来,直接通过列表项的数据项更新对应的实例,生成相应的组件对象,展示在应用界面中。
综上所述,本公开通过在应用界面中展示第一组件对象,获取前端框架提供的更新数据,根据该更新数据对第一列表项的数据项进行更新,根据第一列表项的数据项中的目标属性值更新显示该第一组件对象,在第一组件对象更新时,可以直接更新对应目标组件对象中的目标属性值,不需要对整个组件对象进行重新渲染,减少了终端重新渲染的数据量,提高了终端的渲染效率,减少了更新过程中需要的渲染时间。
在一种可能实现的方式中,本公开提供了一种组件对象更新方法,请参考图9,其示出了本公开实施例提供的一种组件对象更新方法的方法流程图。该方法可以应用于图1或者图2所示的终端中,比如,由该终端中的客户端执行,如图9所示,该方法可以包括如下步骤:
在步骤901中,显示第一组件对象。
可选的,终端中显示第一组件对象,可以是该终端的显示界面中直接展示的应用界面中第一组件对象,也可以是通过上述实施例中更新后显示的第一组件对象,本公开实施例对此并不加以限定。且直接展示以及更新显示的执行细节请参照上述实施例的执行步骤,此处不再赘述。
在步骤902中,获取触发指令。
其中,触发指令可以用于触发取消第一组件对象的显示。
请参考图10,其示出了本公开实施例涉及的一种终端中显示第一组件对象的界面示意图。如图10所示,其中包含了第一组件对象1001,第二组件对象1002,用户可以通过滑动操作或者点击第一组价对象1001中的叉形控件,可以使得该第一组件对象从终端的显示屏中消失。
在步骤903中,将第一组件对象回收到回收池。
在一种可能实现的方式中,当该终端检测到取消该第一组件对象的显示,该终端可以在第一组件对象在终端中完全消失后,将该第一组件对象回收值回收池中。其中,该回收池可以存储第一组件对象包含的所有内容,而且,该终端在回收该第一组件对象到回收池之前,可以在回收池中查找有没有存储过相同的组件对象,此处相同的组件对象是指同属于上述N个列表项的组件对象。如果存储过相同的组件对象,则不需要将该组件对象回收至回收池中,如果没有存储过相同的组件对象,则将该组件对象回收至回收池中。该回收池可以用于存储该长列表中,从终端的可视区转换到不可视区的组件对象。可选的,该回收池可以由程序开发人员或者运维人员预先在终端中设置。
在步骤904中,当上述触发指令还用于触发显示第二列表项的组件对象,且第二列表项是N个列表项中,除了第一列表项之外的另一列表项时,获取第二列表项的数据项。
在一种可能实现的方式中,在图10所示的界面中,第一组件对象的消失肯伴随着第二组件对象的显示,此时,如果第二组件对象对应的第二列表项也是N个列表项中的另一个列表项时,该终端可以获取数据列表中第二列表项的数据项,其中,数据列表的建立和N个列表项的建立请参照上述实施例中的执行细节,此处不再赘述。
在步骤905中,根据第二列表项的数据项对第一组件对象进行更新,获得第二列表项对应的第二组件对象。
通过将回收池中回收的第一组件对象进行复用,终端可以直接根据第二列表项的数据项将该第一组件对象进行更新,获得爹列表项对应的第二组件对象。组件对象的更新过程与上述实施例中组件对象的更新过程类似,此处不再赘述。
在步骤906中,显示第二组件对象。
此处,终端显示第二组件对象与上述显示第一组件对象的执行细节类似,此处不再赘述。
需要说明的是,本公开实施例提供的更新方法也可以在图4所示的实施例的场景中使用,即,图4所示实施例中的组件对象通过用户的一些操作,相应的在处于终端的不可视区域,具体的回收并复用的细节与本公开实施例中的类似。当然,本公开实施例的组件对象也可以发生具体的属性值的更新,具体的更新细节也可以参照上述图4所示实施例中的具体描述。
此外,本公开实施例所示的方案,仅以触发指令同时用于触发第一组件对象回收以及第二组件对象的显示为例进行说明,在另一种可能的实现方式中,当触发指令触发第一组件对象回收之后,若另一个触发指令触发其它的列表项(比如第三列表项)显示,且该第三列表项与第一列表项对应同一个公共组件模板,并且此时第一组件对象任然存在于回收池,则终端也可以根据第三列表项的数据项对第一组件对象进行更新,以获得第三组件对象并显示。
也就是说,当触发指令触发第二列表项显示时,终端中的客户端可以查询回收池中是否存在与该第二列表项对应同一公共组件模板的其它列表项的可用组件对象,若存在,则根据该第二列表项的数据项,对该可用组件对象进行更新获得第二组件对象,从而实现组件对象的回收复用。
综上所述,本公开通过实现组件对象的回收和复用,在终端中可以减少N个列表项对应的各个组件对象的新建,直接可以对已有组件对象的更新即可,进一步减少了终端对组价对象的渲染时间,提高了终端的渲染效率。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
请参考图11,其示出了本公开实施例提供的一种组件对象更新装置的框图,如图11所示,该组件对象更新装置可以通过软件、硬件或者两者的结合实现图1和图2所示实施环境中的终端的部分或者全部,以执行图3、图4或者图9任一所示实施例中由终端执行的步骤。该组件对象更新装置可以包括:
展示模块1101,用于在应用界面中展示第一组件对象,所述第一组件对象是所述应用界面对应的,组件结构相同的N个列表项中的第一列表项对应的组件对象;所述第一组件对象是根据所述N个列表项的公共组件模板,以及所述第一列表项的数据项生成的;所述公共组件模板包含的公共组件属性是所述N个列表项各自的组件属性中的相同属性;所述第一列表项的数据项中包含所述第一列表项的各项组件属性中,除了所述公共组件属性之外的其它组件属性;所述组件结构用于指示对应的列表项中的各个节点组件之间的结构关系;
第一获取模块1102,用于获取前端框架提供的更新数据,所述更新数据用于指示所述第一组件对象中发生更新的目标组件属性,以及所述第一组件对象的所述目标组件属性更新后的目标属性值;
第一更新模块1103,用于根据所述更新数据对所述第一列表项的数据项进行更新,所述第一列表项的更新后的数据项中包含所述目标组件属性和所述目标属性值;
第二更新模块1104,用于根据所述第一列表项的数据项中的所述目标属性值更新显示所述第一组件对象。
可选的,所述第一更新模块1103,具体用于,
当所述目标组件属性属于所述第一列表项的数据项中包含的组件属性时,将所述第一列表项的数据项中包含的所述目标组件属性的属性值更新为所述目标属性值;
或者,
当所述目标组件属性属于所述公共组件属性时,在所述第一列表项的数据项中添加所述更新数据指示的所述目标组件属性和所述目标属性值。
可选的,当所述目标组件属性属于所述公共组件属性时,所述装置还包括:
第二获取模块,用于将所述公共组件模板中的所述目标组件属性剔除,获得更新后的所述公共组件模板;
增加模块,用于在其它列表项各自的数据项中增加从所述公共组件模板中剔除的所述目标组件属性,所述其它列表项是所述N个列表项中除了所述第一列表项之外的各个列表项。
可选的,所述装置还包括:
第三获取模块,用于获取触发指令,所述触发指令用于触发取消所述第一组件对象的显示;
回收模块,用于将所述第一组件对象回收到回收池。
可选的,所述装置还包括:
第四获取模块,用于当所述触发指令还用于触发显示第二列表项的组件对象,且所述第二列表项是所述N个列表项中,除了所述第一列表项之外的另一列表项时,获取所述第二列表项的数据项;
获得模块,用于根据所述第二列表项的数据项对所述第一组件对象进行更新,获得所述第二列表项对应的第二组件对象;
第一显示模块,用于显示所述第二组件对象。
可选的,所述装置还包括:
第五获取模块,用于在应用界面中展示第一组件对象之前,获取所述前端框架提供的,所述应用界面的各个列表项的展开数据,所述展开数据指示对应列表项的组件结构和各项组件属性;
确定模块,用于在应用界面中展示第一组件对象之前,根据所述各个列表项各自的组件结构确定所述各个列表项中的所述N个列表项;
生成模块,用于在应用界面中展示第一组件对象之前,根据所述N个列表项各自的组件结构和各项组件属性生成所述公共组件模板,以及所述N个列表项各自的数据项。
可选的,所述展示模块1101,具体用于,
获取到显示所述第一组件对象的指令时,根据所述公共组件模板以及所述第一列表项的数据项渲染显示所述第一组件对象。
可选的,所述组件结构包括对应列表项的文档对象模型DOM结构。
需要说明的一点是,上述实施例提供的装置在实现其功能时,仅以上述各个功能模块的划分进行举例说明,实际应用中,可以根据实际需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例还提供了一种组件对象更新装置,能够实现本公开上述图3、图4或者图9所示实施例中由终端执行的全部或者部分步骤,该组件对象更新装置包括:处理器、用于存储处理器可执行指令的存储器;
其中,处理器被配置为:
在应用界面中展示第一组件对象,所述第一组件对象是所述应用界面对应的,组件结构相同的N个列表项中的第一列表项对应的组件对象;所述第一组件对象是根据所述N个列表项的公共组件模板,以及所述第一列表项的数据项生成的;所述公共组件模板包含的公共组件属性是所述N个列表项各自的组件属性中的相同属性;所述第一列表项的数据项中包含所述第一列表项的各项组件属性中,除了所述公共组件属性之外的其它组件属性;所述组件结构用于指示对应的列表项中的各个节点组件之间的结构关系;
获取前端框架提供的更新数据,所述更新数据用于指示所述第一组件对象中发生更新的目标组件属性,以及所述第一组件对象的所述目标组件属性更新后的目标属性值;
根据所述更新数据对所述第一列表项的数据项进行更新,所述第一列表项的更新后的数据项中包含所述目标组件属性和所述目标属性值;
根据所述第一列表项的数据项中的所述目标属性值更新显示所述第一组件对象。
可选的,所述处理器被配置为:
当所述目标组件属性属于所述第一列表项的数据项中包含的组件属性时,将所述第一列表项的数据项中包含的所述目标组件属性的属性值更新为所述目标属性值;
或者,
当所述目标组件属性属于所述公共组件属性时,在所述第一列表项的数据项中添加所述更新数据指示的所述目标组件属性和所述目标属性值。
可选的,当所述目标组件属性属于所述公共组件属性时,所述处理器被配置为:
将所述公共组件模板中的所述目标组件属性剔除,获得更新后的所述公共组件模板;
在其它列表项各自的数据项中增加从所述公共组件模板中剔除的所述目标组件属性,所述其它列表项是所述N个列表项中除了所述第一列表项之外的各个列表项。
可选的,所述处理器还被配置为:
获取触发指令,所述触发指令用于触发取消所述第一组件对象的显示;
将所述第一组件对象回收到回收池。
可选的,所述处理器还被配置为:
当所述触发指令还用于触发显示第二列表项的组件对象,且所述第二列表项是所述N个列表项中,除了所述第一列表项之外的另一列表项时,获取所述第二列表项的数据项;
根据所述第二列表项的数据项对所述第一组件对象进行更新,获得所述第二列表项对应的第二组件对象;
显示所述第二组件对象。
可选的,在应用界面中展示第一组件对象之前,所述处理器还被配置为:
获取所述前端框架提供的,所述应用界面的各个列表项的展开数据,所述展开数据指示对应列表项的组件结构和各项组件属性;
根据所述各个列表项各自的组件结构确定所述各个列表项中的所述N个列表项;
根据所述N个列表项各自的组件结构和各项组件属性生成所述公共组件模板,以及所述N个列表项各自的数据项。
可选的,所述处理器被配置为:
获取到显示所述第一组件对象的指令时,根据所述公共组件模板以及所述第一列表项的数据项渲染显示所述第一组件对象。
可选的,所述组件结构包括对应列表项的文档对象模型DOM结构。
上述主要以终端为例,对本公开实施例提供的方案进行了介绍。可以理解的是,终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本公开中所公开的实施例描述的各示例的模块及算法步骤,本公开实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本公开实施例的技术方案的范围。
图12是根据一示例性实施例示出的一种用于组件对象更新装置的框图。例如,装置1200可以被提供为终端。请参照图12,装置1200包括处理组件1222,其进一步包括一个或多个处理器,以及由存储器1232所代表的存储器资源,用于存储可由处理部件1222执行的指令,例如应用程序。存储器1232中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1222被配置为执行指令,以执行上述组件对象更新方法中,由终端执行的全部或者部分步骤。
装置1200还可以包括一个电源组件1226被配置为执行装置1200的电源管理,一个有线或无线网络接口1250被配置为将装置1200连接到网络,和一个输入输出(I/O)接口1238。装置1200可以操作基于存储在存储器1232的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本公开实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本公开实施例还提供了一种计算机存储介质,用于储存为上述终端所用的计算机软件指令,其包含用于执行上述组件对象更新方法所设计的程序。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (18)
1.一种组件对象更新方法,其特征在于,所述方法包括:
在应用界面中展示第一组件对象,所述第一组件对象是所述应用界面对应的,组件结构相同的N个列表项中的第一列表项对应的组件对象;所述第一组件对象是根据所述N个列表项的公共组件模板,以及所述第一列表项的数据项生成的;所述公共组件模板包含的公共组件属性是所述N个列表项各自的组件属性中的相同属性;所述第一列表项的数据项中包含所述第一列表项的各项组件属性中,除了所述公共组件属性之外的其它组件属性;所述组件结构用于指示对应的列表项中的各个节点组件之间的结构关系;
获取前端框架提供的更新数据,所述更新数据用于指示所述第一组件对象中发生更新的目标组件属性,以及所述第一组件对象的所述目标组件属性更新后的目标属性值;
根据所述更新数据对所述第一列表项的数据项进行更新,所述第一列表项的更新后的数据项中包含所述目标组件属性和所述目标属性值;
根据所述第一列表项的数据项中的所述目标属性值更新显示所述第一组件对象。
2.根据权利要求1所述的方法,其特征在于,所述根据所述更新数据对所述第一列表项的数据项进行更新,包括:
当所述目标组件属性属于所述第一列表项的数据项中包含的组件属性时,将所述第一列表项的数据项中包含的所述目标组件属性的属性值更新为所述目标属性值;
或者,
当所述目标组件属性属于所述公共组件属性时,在所述第一列表项的数据项中添加所述更新数据指示的所述目标组件属性和所述目标属性值。
3.根据权利要求2所述的方法,其特征在于,当所述目标组件属性属于所述公共组件属性时,所述方法还包括:
将所述公共组件模板中的所述目标组件属性剔除,获得更新后的所述公共组件模板;
在其它列表项各自的数据项中增加从所述公共组件模板中剔除的所述目标组件属性,所述其它列表项是所述N个列表项中除了所述第一列表项之外的各个列表项。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取触发指令,所述触发指令用于触发取消所述第一组件对象的显示;
将所述第一组件对象回收到回收池。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述触发指令还用于触发显示第二列表项的组件对象,且所述第二列表项是所述N个列表项中,除了所述第一列表项之外的另一列表项时,获取所述第二列表项的数据项;
根据所述第二列表项的数据项对所述第一组件对象进行更新,获得所述第二列表项对应的第二组件对象;
显示所述第二组件对象。
6.根据权利要求1所述的方法,其特征在于,所述在应用界面中展示第一组件对象之前,所述方法还包括:
获取所述前端框架提供的,所述应用界面的各个列表项的展开数据,所述展开数据指示对应列表项的组件结构和各项组件属性;
根据所述各个列表项各自的组件结构确定所述各个列表项中的所述N个列表项;
根据所述N个列表项各自的组件结构和各项组件属性生成所述公共组件模板,以及所述N个列表项各自的数据项。
7.根据权利要求1所述的方法,其特征在于,所述在应用界面中展示第一组件对象,包括:
获取到显示所述第一组件对象的指令时,根据所述公共组件模板以及所述第一列表项的数据项渲染显示所述第一组件对象。
8.根据权利要求1至7任一所述的方法,其特征在于,所述组件结构包括对应列表项的文档对象模型DOM结构。
9.一种组件对象更新装置,其特征在于,所述装置包括:
展示模块,用于在应用界面中展示第一组件对象,所述第一组件对象是所述应用界面对应的,组件结构相同的N个列表项中的第一列表项对应的组件对象;所述第一组件对象是根据所述N个列表项的公共组件模板,以及所述第一列表项的数据项生成的;所述公共组件模板包含的公共组件属性是所述N个列表项各自的组件属性中的相同属性;所述第一列表项的数据项中包含所述第一列表项的各项组件属性中,除了所述公共组件属性之外的其它组件属性;所述组件结构用于指示对应的列表项中的各个节点组件之间的结构关系;
第一获取模块,用于获取前端框架提供的更新数据,所述更新数据用于指示所述第一组件对象中发生更新的目标组件属性,以及所述第一组件对象的所述目标组件属性更新后的目标属性值;
第一更新模块,用于根据所述更新数据对所述第一列表项的数据项进行更新,所述第一列表项的更新后的数据项中包含所述目标组件属性和所述目标属性值;
第二更新模块,用于根据所述第一列表项的数据项中的所述目标属性值更新显示所述第一组件对象。
10.根据权利要求9所述的装置,其特征在于,所述第一更新模块,具体用于,
当所述目标组件属性属于所述第一列表项的数据项中包含的组件属性时,将所述第一列表项的数据项中包含的所述目标组件属性的属性值更新为所述目标属性值;
或者,
当所述目标组件属性属于所述公共组件属性时,在所述第一列表项的数据项中添加所述更新数据指示的所述目标组件属性和所述目标属性值。
11.根据权利要求10所述的装置,其特征在于,当所述目标组件属性属于所述公共组件属性时,所述装置还包括:
第二获取模块,用于将所述公共组件模板中的所述目标组件属性剔除,获得更新后的所述公共组件模板;
增加模块,用于在其它列表项各自的数据项中增加从所述公共组件模板中剔除的所述目标组件属性,所述其它列表项是所述N个列表项中除了所述第一列表项之外的各个列表项。
12.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于获取触发指令,所述触发指令用于触发取消所述第一组件对象的显示;
回收模块,用于将所述第一组件对象回收到回收池。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第四获取模块,用于当所述触发指令还用于触发显示第二列表项的组件对象,且所述第二列表项是所述N个列表项中,除了所述第一列表项之外的另一列表项时,获取所述第二列表项的数据项;
获得模块,用于根据所述第二列表项的数据项对所述第一组件对象进行更新,获得所述第二列表项对应的第二组件对象;
第一显示模块,用于显示所述第二组件对象。
14.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第五获取模块,用于在应用界面中展示第一组件对象之前,获取所述前端框架提供的,所述应用界面的各个列表项的展开数据,所述展开数据指示对应列表项的组件结构和各项组件属性;
确定模块,用于在应用界面中展示第一组件对象之前,根据所述各个列表项各自的组件结构确定所述各个列表项中的所述N个列表项;
生成模块,用于在应用界面中展示第一组件对象之前,根据所述N个列表项各自的组件结构和各项组件属性生成所述公共组件模板,以及所述N个列表项各自的数据项。
15.根据权利要求9所述的装置,其特征在于,所述展示装置具体用于,
获取到显示所述第一组件对象的指令时,根据所述公共组件模板以及所述第一列表项的数据项渲染显示所述第一组件对象。
16.根据权利要求9至15任一所述的装置,其特征在于,所述组件结构包括对应列表项的文档对象模型DOM结构。
17.一种组件对象更新装置,其特征在于,所述装置包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
在应用界面中展示第一组件对象,所述第一组件对象是所述应用界面对应的,组件结构相同的N个列表项中的第一列表项对应的组件对象;所述第一组件对象是根据所述N个列表项的公共组件模板,以及所述第一列表项的数据项生成的;所述公共组件模板包含的公共组件属性是所述N个列表项各自的组件属性中的相同属性;所述第一列表项的数据项中包含所述第一列表项的各项组件属性中,除了所述公共组件属性之外的其它组件属性;所述组件结构用于指示对应的列表项中的各个节点组件之间的结构关系;
获取前端框架提供的更新数据,所述更新数据用于指示所述第一组件对象中发生更新的目标组件属性,以及所述第一组件对象的所述目标组件属性更新后的目标属性值;
根据所述更新数据对所述第一列表项的数据项进行更新,所述第一列表项的更新后的数据项中包含所述目标组件属性和所述目标属性值;
根据所述第一列表项的数据项中的所述目标属性值更新显示所述第一组件对象。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包含可执行指令,终端中的处理器调用所述可执行指令以实现上述权利要求1至8任一所述的组件对象更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811637117.5A CN109683939B (zh) | 2018-12-29 | 2018-12-29 | 组件对象更新方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811637117.5A CN109683939B (zh) | 2018-12-29 | 2018-12-29 | 组件对象更新方法、装置以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109683939A true CN109683939A (zh) | 2019-04-26 |
CN109683939B CN109683939B (zh) | 2023-05-02 |
Family
ID=66191329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811637117.5A Active CN109683939B (zh) | 2018-12-29 | 2018-12-29 | 组件对象更新方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109683939B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083356A (zh) * | 2019-04-28 | 2019-08-02 | 成都四方伟业软件股份有限公司 | 组件样式同步方法、装置及服务器 |
CN113254043A (zh) * | 2021-06-04 | 2021-08-13 | 京东科技控股股份有限公司 | Web前端项目处理方法、装置、电子设备及存储介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999042942A1 (en) * | 1998-02-23 | 1999-08-26 | Ron Ribitzky | Component based object-relational database infrastructure and user interface |
US20020059327A1 (en) * | 2000-07-31 | 2002-05-16 | Starkey James A. | Method and apparatus for generating web pages from templates |
CN101727436A (zh) * | 2008-10-29 | 2010-06-09 | 华为技术有限公司 | 一种报表数据处理方法、报表系统以及相关装置 |
US20110258534A1 (en) * | 2010-04-16 | 2011-10-20 | Microsoft Corporation | Declarative definition of complex user interface state changes |
CN103914933A (zh) * | 2012-12-30 | 2014-07-09 | 航天信息股份有限公司 | 一种基于xml技术的发票打印方法和装置 |
WO2014190821A1 (zh) * | 2013-05-31 | 2014-12-04 | 华为技术有限公司 | 一种创建应用的方法及装置 |
CN104765597A (zh) * | 2014-01-06 | 2015-07-08 | 福特全球技术公司 | 针对应用类型用户界面模板的方法和系统 |
CN106202529A (zh) * | 2016-07-22 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种页面渲染方法及装置 |
CN106445314A (zh) * | 2016-09-07 | 2017-02-22 | 广东欧珀移动通信有限公司 | 显示界面刷新方法及装置 |
CN106528129A (zh) * | 2016-10-27 | 2017-03-22 | 南京南瑞继保电气有限公司 | 一种Web应用界面生成系统及方法 |
CN106919410A (zh) * | 2015-12-25 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 组件的布局模板的扩展方法和装置 |
CN107153528A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 混合模型列表项重用的方法及设备 |
CN107491307A (zh) * | 2017-08-11 | 2017-12-19 | 北京小度信息科技有限公司 | 信息提供方法、装置、电子设备及计算机可读存储介质 |
CN108334387A (zh) * | 2017-01-20 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 动态界面渲染方法及装置 |
CN109062563A (zh) * | 2018-08-01 | 2018-12-21 | 北京百度网讯科技有限公司 | 用于生成页面的方法和装置 |
-
2018
- 2018-12-29 CN CN201811637117.5A patent/CN109683939B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999042942A1 (en) * | 1998-02-23 | 1999-08-26 | Ron Ribitzky | Component based object-relational database infrastructure and user interface |
US20020059327A1 (en) * | 2000-07-31 | 2002-05-16 | Starkey James A. | Method and apparatus for generating web pages from templates |
CN101727436A (zh) * | 2008-10-29 | 2010-06-09 | 华为技术有限公司 | 一种报表数据处理方法、报表系统以及相关装置 |
US20110258534A1 (en) * | 2010-04-16 | 2011-10-20 | Microsoft Corporation | Declarative definition of complex user interface state changes |
CN103914933A (zh) * | 2012-12-30 | 2014-07-09 | 航天信息股份有限公司 | 一种基于xml技术的发票打印方法和装置 |
WO2014190821A1 (zh) * | 2013-05-31 | 2014-12-04 | 华为技术有限公司 | 一种创建应用的方法及装置 |
CN104765597A (zh) * | 2014-01-06 | 2015-07-08 | 福特全球技术公司 | 针对应用类型用户界面模板的方法和系统 |
CN106919410A (zh) * | 2015-12-25 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 组件的布局模板的扩展方法和装置 |
CN107153528A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 混合模型列表项重用的方法及设备 |
CN106202529A (zh) * | 2016-07-22 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种页面渲染方法及装置 |
CN106445314A (zh) * | 2016-09-07 | 2017-02-22 | 广东欧珀移动通信有限公司 | 显示界面刷新方法及装置 |
CN106528129A (zh) * | 2016-10-27 | 2017-03-22 | 南京南瑞继保电气有限公司 | 一种Web应用界面生成系统及方法 |
CN108334387A (zh) * | 2017-01-20 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 动态界面渲染方法及装置 |
CN107491307A (zh) * | 2017-08-11 | 2017-12-19 | 北京小度信息科技有限公司 | 信息提供方法、装置、电子设备及计算机可读存储介质 |
CN109062563A (zh) * | 2018-08-01 | 2018-12-21 | 北京百度网讯科技有限公司 | 用于生成页面的方法和装置 |
Non-Patent Citations (3)
Title |
---|
HANKS10100: "Weex的recycle-list诞生记", 《HTTPS://SEGMENTFAULT.COM/A/1190000013697211.HTML》 * |
IMYZF等: "Implementation.md", 《HTTPS://GITHUB.COM/HANKS10100/WEEX-NATIVE-DIRECTIVE/BLOB/MASTER/IMPLEMENTATION.MD》 * |
WEIXIN_34008805: "Weex 的 recycle-list 诞生记", 《HTTPS://BLOG.CSDN.NET/WEIXIN_34008805/ARTICLE/DETAILS/88864284》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083356A (zh) * | 2019-04-28 | 2019-08-02 | 成都四方伟业软件股份有限公司 | 组件样式同步方法、装置及服务器 |
CN113254043A (zh) * | 2021-06-04 | 2021-08-13 | 京东科技控股股份有限公司 | Web前端项目处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109683939B (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Du et al. | Zero latency: Real-time synchronization of BIM data in virtual reality for collaborative decision-making | |
US10878361B2 (en) | System and method to generate interactive user interface for visualizing and navigating data or information | |
Bozzon et al. | Reactive crowdsourcing | |
US9305465B2 (en) | Method and system for topic based virtual environments and expertise detection | |
Diaz et al. | RMC: A tool to design WWW applications | |
US20110313966A1 (en) | Activity schemes for support of knowledge-intensive tasks | |
CN105487864A (zh) | 代码自动生成的方法和装置 | |
CN108959444A (zh) | 基于树状结构的主页集群系统管理方法及装置 | |
CN109300181A (zh) | 用户界面和内容项的计算机生成显示组件的动画 | |
US7797384B2 (en) | Sequential restructuring of a collaborative context | |
JP6532981B2 (ja) | 持続的ノードフレームワーク | |
CN106471572B (zh) | 一种同步语音及虚拟动作的方法、系统及机器人 | |
Ceri et al. | Extending WebML for modeling multi-channel context-aware web applications | |
CN112199086A (zh) | 自动编程控制系统、方法、装置、电子设备及存储介质 | |
CN109683939A (zh) | 组件对象更新方法、装置以及存储介质 | |
CN106528169A (zh) | 一种基于AnGo动态演化模型的Web系统开发可复用方法 | |
Vieira et al. | An ontology-driven architecture for flexible workflow execution | |
Cai et al. | A semi-transparent selective undo algorithm for multi-user collaborative editors | |
Chen | Understanding of the management information system based on MVC pattern | |
CN115544311A (zh) | 数据分析方法以及装置 | |
Zheng et al. | Modeling the adaption rule in context-aware systems | |
CN105654535B (zh) | 一种用于三维模拟系统的模型管理器系统 | |
Kleppmann | Thinking in events: from databases to distributed collaboration software | |
Wettschereck | A kddse-independent pmml visualizer | |
CN117093259B (zh) | 一种模型配置方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |