CN114547514A - 组件动态渲染方法、装置、设备及介质 - Google Patents

组件动态渲染方法、装置、设备及介质 Download PDF

Info

Publication number
CN114547514A
CN114547514A CN202111672777.9A CN202111672777A CN114547514A CN 114547514 A CN114547514 A CN 114547514A CN 202111672777 A CN202111672777 A CN 202111672777A CN 114547514 A CN114547514 A CN 114547514A
Authority
CN
China
Prior art keywords
information
component
page
rendering
target
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.)
Pending
Application number
CN202111672777.9A
Other languages
English (en)
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.)
Ruiting Network Technology Shanghai Co ltd
Original Assignee
Ruiting Network Technology Shanghai 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 Ruiting Network Technology Shanghai Co ltd filed Critical Ruiting Network Technology Shanghai Co ltd
Priority to CN202111672777.9A priority Critical patent/CN114547514A/zh
Publication of CN114547514A publication Critical patent/CN114547514A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例提供一种组件动态渲染方法、装置、设备及介质。在本申请实施例中,根据应用程序支持的第一平台针对目标页面发起的渲染请求,可以获取目标页面对应的DSL描述文件以及识别DSL描述文件中的多个UI对象的属性信息和多个UI对象之间的级联关系,将多个UI对象的属性信息和多个UI对象之间的级联关系分别转换为第一平台所能识别的多个组件描述信息和多个目标组件对应的页面布局信息,以利用多个目标组件进行页面渲染,得到目标页面。由于DSL描述文件对第一平台没有依赖性,可以根据DSL描述文件实现跨平台对前端页面动态化渲染,利用各平台的原生组件及原生渲染能力进行页面渲染,具有更高的性能和效率。

Description

组件动态渲染方法、装置、设备及介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种组件动态渲染方法、装置、设备及介质。
背景技术
随着计算机技术的发展,以可视化形式向用户展示信息的方式越来越丰富,尤其在移动端,不同的移动平台通常可以通过APP、小程序、微商城、移动网站等多种方式向用户展示信息。在一些业务灵活多变、期望快速响应落地、敏捷迭代的场景中,采用高性能的移动开发技术对组件进行动态化渲染一直是应用程序开发者尤其是移动端开发者追求的目标。
然而,目前已有的动态化渲染方案都有不足之处,例如,H5的基于Web的动态化渲染方案是依托于浏览器内核进行渲染的H5技术,在动态化渲染方面虽然具有天然优势,但是由于其性能低、体验差等缺点限制了在业务上的大规模应用;又例如,跨平台移动应用开发框架React Native(简称RN)的基于React JS的动态化方案是在JS运行时,由JS代码来控制原生侧对页面渲染及交互,虽然可以通过JS对RN的解释执行下发JS bundle实现应用程序的动态渲染,但是由于JS作为渲染的控制核心,会因为JS Core和原生侧的数据交互频繁,造成的性能瓶颈。
因此,有必要实现一种即满足高性能要求又能实现对组件动态渲染的方案以解决上述问题。
发明内容
本申请的多个方面提供一种组件动态渲染方法、装置、设备及介质,用以解决在满足高性能要求的情况下又能实现对组件动态渲染的问题。
本申请实施例一种组件动态渲染方法,包括:响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取所述目标页面对应的DSL描述文件,所述DSL描述文件是脱离所述第一平台特性的页面信息描述文件;识别所述DSL描述文件中包含的多个UI对象的属性信息以及所述多个UI对象之间的级联关系;将所述多个UI对象的属性信息转换为所述第一平台所能识别的多个组件描述信息,所述多个组件描述信息指向所述第一平台支持的多个目标组件;将所述多个UI对象之间的级联关系转换为所述多个目标组件对应的页面布局信息;根据所述页面布局信息和所述多个组件描述信息,利用所述多个目标组件进行页面渲染,以得到所述目标页面。
在一可选实施例中,响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取所述目标页面对应的DSL描述文件,包括:响应应用程序支持的第一平台针对目标页面发起的渲染请求,从本地缓存中获取所述目标页面对应的DSL描述文件;所述方法还包括:在所述应用程序启动过程中,向DSL描述文件管理平台发送第一DSL描述文件请求,所述第一DSL描述文件请求中包括所述应用程序的版本信息和所述应用程序包含的各页面的标识;接收所述DSL描述文件管理平台根据所述应用程序的版本信息和各页面的标识返回的各页面对应的DSL描述文件,并将各页面对应的DSL文件写入本地缓存中。
在一可选实施例中,响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取所述目标页面对应的DSL描述文件,包括:响应应用程序支持的第一平台针对目标页面发起的渲染请求,向DSL描述文件管理平台发送第二DSL描述文件请求,所述第二DSL描述文件请求中包括所述应用程序的版本信息和所述目标页面的标识;接收所述DSL描述文件管理平台根据所述应用程序的版本信息和所述目标页面的标识返回的所述目标页面对应的DSL描述文件。
在一可选实施例中,所述DSL描述文件的数据结构为视图树结构,识别所述DSL描述文件中包含的多个UI对象的属性信息以及所述多个UI对象之间的级联关系,包括:对所述DSL描述文件进行解析,得到所述视图树中各节点对应的UI对象及其属性信息;根据所述视图树中各节点之间的级联关系,确定各节点对应的UI对象之间的级联关系。
在一可选实施例中,将所述多个UI对象的属性信息转换为所述第一平台所能识别的多个组件描述信息,包括:从所述多个UI对象的属性信息中解析出渲染所述目标页面所需的多个组件基本信息和多个组件布局信息;根据所述第一平台支持的语法规则,将所述多个组件基本信息和多个组件布局信息转换为所述第一平台支持的多个组件描述信息。
在一可选实施例中,还包括:获取所述第一平台对所述目标页面的指定渲染信息,根据所述指定渲染信息确定指定渲染组件以及所述指定渲染组件的组件基本信息和组件布局信息;所述将所述多个UI对象的属性信息转换为所述第一平台所能识别的多个组件描述信息,包括:根据所述第一平台支持的语法规则,将所述多个UI对象和所述指定渲染组件的组件基本信息和组件布局信息转换为所述第一平台支持的多个组件描述信息。
在一可选实施例中,还包括:根据所述指定渲染的组件基本信息和组件布局信息,确定所述指定渲染组件和所述多个目标组件之间的级联关系;其中,所述指定渲染组件和所述多个目标组件之间的级联关系共同作为级联关系,所述指定渲染信息和所述多个UI对象的属性信息共同作为属性信息。
在一可选实施例中,将所述多个UI对象之间的级联关系转换为所述多个目标组件对应的页面布局信息,包括:根据所述级联关系和所述多个组件描述信息,生成所述多个组件描述信息对应的文档树,所述文档树的目录结构表示所述页面布局信息。
在一可选实施例中,所述属性信息中还包括第一组件关联的事件信息,所述事件信息至少包括事件触发行为、数据处理方式以及数据传输信息,所述方法还包括:从所述属性信息中解析出关联有事件信息的第一目标组件;针对所述第一目标组件,根据所述事件触发行为、数据处理方式以及数据传输信息,在所述文档树中为所述第一目标组件绑定数据响应事件和行为监听事件;其中,所述行为监听事件用于在渲染出所述目标页面的情况下监听所述目标页面上是否发生所述事件触发行为,所述数据响应事件用于在所述行为监听事件监听到所述事件触发行为的情况下,按照所述数据处理方式和所述数据传输信息进行数据处理。
在一可选实施例中,在渲染出所述目标页面之后,所述方法还包括:监听所述目标页面上是否发生所述事件触发行为;在监听到所述事件触发行为的情况下,从所述数据传输信息中解析出数据获取地址和数据获取类型,按照所述数据获取类型从所述数据获取地址获取目标数据,并根据所述数据处理方式对所述目标数据进行处理。
在一可选实施例中,根据所述页面布局信息和所述多个组件描述信息,利用所述多个目标组件进行页面渲染,以得到所述目标页面,包括:按照所述文档树的目录结构,依次从所述第一平台支持的组件源码库中获取所述文档树对应的各目标组件,并根据依次获取的所述各目标组件进行页面渲染,以得到所述目标页面。
本申请实施例还提供一种组件动态渲染装置,包括:获取模块,用于响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取所述目标页面对应的DSL描述文件,所述DSL描述文件是脱离所述第一平台特性的页面信息描述文件;第一处理模块,用于识别所述DSL描述文件中包含的多个UI对象的属性信息以及所述多个UI对象之间的级联关系;第二处理模块,用于将所述多个UI对象的属性信息转换为所述第一平台所能识别的多个组件描述信息,所述多个组件描述信息指向所述第一平台支持的多个目标组件;以及将所述多个UI对象之间的级联关系转换为所述多个目标组件对应的页面布局信息;渲染模块,用于根据所述页面布局信息和所述多个组件描述信息,利用所述多个目标组件进行页面渲染,以得到所述目标页面。
本申请实施例还提供一种组件动态渲染设备,包括:处理器以及存储有计算机程序的存储器;所述处理器,用于执行所述计算机程序,以用于:响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取所述目标页面对应的DSL描述文件,所述DSL描述文件是脱离所述第一平台特性的页面信息描述文件;识别所述DSL描述文件中包含的多个UI对象的属性信息以及所述多个UI对象之间的级联关系;将所述多个UI对象的属性信息转换为所述第一平台所能识别的多个组件描述信息,所述多个组件描述信息指向所述第一平台支持的多个目标组件;将所述多个UI对象之间的级联关系转换为所述多个目标组件对应的页面布局信息;根据所述页面布局信息和所述多个组件描述信息,利用所述多个目标组件进行页面渲染,以得到所述目标页面。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器实现所述方法权中的各步骤。
在本申请实施例中,在响应到应用程序支持的第一平台针对目标页面发起的渲染请求的情况下,可以获取目标页面对应的DSL描述文件,并识别DSL描述文件中包含的多个UI对象的属性信息以及多个UI对象之间的级联关系;基于此,可以将多个UI对象的属性信息转换为第一平台所能识别的多个组件描述信息,以及将多个UI对象之间的级联关系转换为多个目标组件对应的页面布局信息;进一步,根据页面布局信息和多个组件描述信息,生成第一平台别所能识别的文档树,并为包含有事件信息的组件设置数据响应事件及行为监听事件,以在利用多个目标组件进行页面渲染得到所述目标页面后,在监听到目标组件对应的事件被触发的情况下,可以进行相应的数据处理。由于本申请实施例中DSL描述文件是经过平台特性抽象及重新表达后的通用数据格式,对第一平台没有依赖性,因此,基于该DSL描述文件可以实现跨平台对前端页面动态化渲染;并且,在各平台在基于DSL描述文件对页面渲染时,利用各平台支持的原生组件及原生渲染能力进行页面渲染,具有更高的性能和效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请实施例提供的一种基于组件动态渲染方法实现组件动态渲染过程的示意图;
图1b为本申请实施例提供的一种组件动态渲染方法流程图;
图1c为本申请实施例提供的一种组件动态渲染方法整体流程图;
图2为本申请实施例提供的一种组件动态渲染装置的结构示意图;
图3为本申请实施例提供的一种组件动态渲染设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决现有方案无法同时满足高性能和动态化渲染组件的问题,本申请实施例提供了一种组件动态渲染方法,该方法应用于前端的DSL渲染引擎,DSL渲染引擎可以响应应用程序所支持的平台对应用程序的前端页面发起的渲染请求。如图1a所示,DSL渲染引擎10在响应到针对前端的目标页面的发起的渲染请求的情况下,可以向领域特定语言(Domain Specific Language,DSL)描述文件管理平台20发送DSL描述文件请求,该请求中包括目标页面所属的应用程序的版本信息和待渲染的目标页面的标识。DSL描述文件管理平台20中包括前端的页面在不同版本下对应的DSL描述文件以及与页面对应的至少一个组件库,每个组件库中包括页面涉及的多个组件,每个DSL描述文件包括对应版本的页面涉及的多个组件的描述信息和组件库所支持的应用程序版本描述信息。
基于此,DSL描述文件管理平台20在接收到DSL渲染引擎10发送的DSL描述文件请求的情况下,可以根据应用程序的版本信息和待渲染的目标页面的标识确定可以支持该应用程序版本的目标组件库以及目标DSL描述文件,并向DSL渲染引擎10返回该目标DSL描述文件,以供DSL渲染引擎10根据该目标DSL描述文件对目标页面进行渲染对。进一步,DSL渲染引擎10可以识别目标DSL描述中包括的组件描述信息,确定渲染目标页面所需的目标组件以及目标组件之间的级联关系,并从DSL渲染引擎10当前所在平台的后端服务器30获取目标组件,并对目标页面进行动态化渲染。
本申请实施例的DSL描述文件是通过对应用平台特性的抽象及重新表达后得到的具有通用数据格式的描述文件,该DSL描述文件不依赖页面所应用的具体平台;可选地,DSL描述文件的格式可以为JSON或XML等无平台特性的通用数据格式。基于此,DSL描述文件管理平台20可以实现跨平台下发目标DSL描述文件时,各平台根据目标DSL描述文件,可以利用原生渲染能力对目标页面进行动态化渲染,性能更高;其中,各平台包括但不限于Android平台、iOS平台、Web、小程序以及H5中的任一种或多种,在此不做限定。
图1b为本申请实施例提供的组件动态渲染方法的流程图,如图1b所示,方法包括:
S1、响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取目标页面对应的DSL描述文件,DSL描述文件是脱离第一平台特性的页面信息描述文件;
S2、识别DSL描述文件中包含的多个UI对象的属性信息以及多个UI对象之间的级联关系;
S3、将多个UI对象的属性信息转换为第一平台所能识别的多个组件描述信息,多个组件描述信息指向第一平台支持的多个目标组件;
S4、将多个UI对象之间的级联关系转换为多个目标组件对应的页面布局信息;
S5、根据页面布局信息和多个组件描述信息,利用多个目标组件进行页面渲染,以得到目标页面。
在本申请实施例中,第一平台是指应用程序所支持的平台,DSL描述文件是脱离第一平台特性的页面信息描述文件。在应用程序前端的目标页面被触发并需要渲染的情况下,DSL渲染引擎可以响应应用程序支持的第一平台针对目标页面发起的渲染请求,并获取目标页面对应的DSL描述文件。针对获取到的DSL描述文件,DSL渲染引擎可以识别DSL描述文件中包含的多个UI对象的属性信息以及多个UI对象之间的级联关系;其中UI对象的属性信息包括UI对象的基本信息和布局信息,多个UI对象之间的级联关系反映了多个UI对象在目标页面上的相对位置关系。
由于DSL描述文件是经过平台特性抽象及重新表达后的通用数据格式,因此,在识别到DSL描述文件中对多个UI对象的描述信息的情况下,DSL渲染引擎可以将多个UI对象的属性信息转换为第一平台所能识别的多个组件描述信息,并将多个UI对象之间的级联关系转换为多个目标组件对应的页面布局信息;其中,多个组件描述信息指向第一平台支持的多个目标组件。进一步,DSL渲染引擎可以根据页面布局信息和多个组件描述信息,利用多个目标组件进行页面渲染,以得到目标页面。
在本申请实施例中,不限定DSL渲染引擎获取目标页面对应的DSL描述文件的具体形式。在一可选实施例中,在DSL渲染引擎本地缓存管理器(Cache Manager)中保存有DSL描述文件的情况下,DSL渲染引擎在响应到应用程序支持的第一平台针对目标页面发起的渲染请求时,可以直接从本地缓存管理器中获取目标页面对应的DSL描述文件。基于此,在应用程序启动过程中,DSL渲染引擎可以向DSL描述文件管理平台发送第一DSL描述文件请求;其中,第一DSL描述文件请求中包括应用程序的版本信息和应用程序包含的各页面的标识,DSL描述文件管理平台可以根据应用程序的版本信息和各页面的标识向DSL渲染引擎返回与各页面对应的DSL描述文件;进一步,DSL渲染引擎可以接收DSL描述文件管理平台根据应用程序的版本信息和各页面的标识返回的各页面对应的DSL描述文件,并将各页面对应的DSL文件写入本地缓存管理器中,以供在响应到第一平台针对目标页面发起的渲染请求时,从本地缓存管理器获取目标页面对应的DSL描述文件,并根据该DSL描述文件对目标页面进行动态化渲染。
在另一可选实施例中,DSL渲染引擎也可以实时获取目标页面对应的DSL描述文件,DSL渲染引擎在响应到应用程序支持的第一平台针对目标页面发起的渲染请求时,可以直接向DSL描述文件管理平台发送第二DSL描述文件请求;其中,第二DSL描述文件请求中包括应用程序的版本信息和目标页面的标识;基于此,DSL描述文件管理平台可以根据应用程序的版本信息和目标页面的标识,向DSL渲染引擎返回与目标页面对应的DSL描述文件;进一步,DSL渲染引擎可以接收DSL描述文件管理平台根据应用程序的版本信息和目标页面的标识返回的目标页面对应的DSL描述文件,并根据该DSL描述文件对目标页面进行动态化渲染。
在本申请实施例中,DSL描述文件的数据结构为视图树结构,该视图树结构反映的多个UI对象之间的级联关系;基于此,DSL渲染引擎在识别DSL描述文件中包含的多个UI对象的属性信息以及多个UI对象之间的级联关系时,可以利用DSL渲染引擎的DSL管理器(DSLManager)对DSL描述文件进行解析,以得到视图树中各节点对应的UI对象及其属性信息,以及根据视图树中各节点之间的级联关系,可以确定各节点对应的UI对象之间的级联关系。进一步,在得到多个UI对象的属性信息以及多个UI对象之间的级联关系的情况下,DSL渲染引擎便可以将多个UI对象的属性信息转换为第一平台所能识别的多个组件描述信息,以根据多个组件描述信息确定目标组件,并基于目标组件对目标页面进行动态化渲染。
可选地,在将多个UI对象的属性信息转换为第一平台所能识别的多个组件描述信息时,DSL渲染引擎可以从多个UI对象的属性信息中解析出渲染目标页面所需的多个组件基本信息和多个组件布局信息;其中,基本信息包括但不限于多个组件的标识、名称、类型、支持的应用程序版本等;布局信息包括但不限于多个组件在目标页面上以流式布局、边框布局、网格布局、网贷布局、绝对布局等布局方式对应的布局信息,还可以包括多个组件的尺寸信息以及以居左、居右、居上、居下或居中等显示位置信息,等等。
在本实施例中,不限定DSL描述文件中内容的具体形式,可选地,假设DSL描述文件为JSON数据格式。如下示例1所示,DSL描述文件中的多个UI对象的级联关系由大括号进行区分,每对大括号中的信息为该对大括号对应的UI对象的基本信息和布局信息;在当前大括号内嵌套的大括号及其中的信息为当前UI对象的子级UI对象及其基本信息和布局信息;依此类推,便可以识别出多个UI对象的基本信息和布局信息以及多个UI对象之间的级联关系。进一步,在识别到多个组件基本信息和多个组件布局信息的情况下,DSL渲染引擎可以根据第一平台支持的语法规则,将多个组件基本信息和多个组件布局信息转换为第一平台支持的多个组件描述信息。
在本实施例中,不限定第一平台的具体实现方式,假设第一平台为Android平台,其支持JavaScaript的语法规则,则在下述实例1中,在识别出多个UI对象的属性信息和布局信息以及多个UI对象之间的级联关系,便可以按照JavaScaript的语法规则将识别到的信息转换为多个组件描述信息。如下示例1所示,经格式转换后,图中右侧所示的整个node节点集合被转换为图中左侧所示的页面节点page以及其中组件信息;图中右侧的node集合中包括的3个child子集合分别表示3个UI对象及其基本信息和布局信息,经格式转换后分别被转换为图中左侧所示的页面节点page中的3个child子节点,用于分别表示页面中的3个组件及其基本信息和布局信息。
Figure BDA0003453507180000111
在实际应用中,不同的应用平台对同样的页面展示效果可能有不同的展示需求,例如,Android和iOS平台对手机界面上顶部刘海和底部导航以及显示的文本基线的要求都有差异。因此,在本申请可选实施例中,在第一平台对目标页面中的指定组件有指定渲染需求的情况下,还可以按需为目标页面中的指定组件设置指定渲染信息,并在DSL渲染引擎每次启动时,将设置的指定渲染信息注入DSL渲染引擎的启动参数中,以供DSL渲染引擎获取第一平台对目标页面的指定渲染信息,并根据指定渲染信息确定指定渲染组件以及指定渲染组件的组件基本信息和组件布局信息。
基于此,在将多个UI对象的属性信息转换为第一平台所能识别的多个组件描述信息时,还可以根据第一平台支持的语法规则,将多个UI对象和指定渲染组件的组件基本信息和组件布局信息共同转换为第一平台支持的多个组件描述信息。可选地,在转换为第一平台支持的多个组件描述信息时,可以根据指定渲染的组件基本信息和组件布局信息,确定指定渲染组件和与DSL描述文件中多个UI对象对应的多个目标组件之间的级联关系,并将指定渲染组件和多个目标组件之间的级联关系共同作为级联关系,以及将指定渲染信息和多个UI对象的属性信息共同作为属性信息。基于此,可以根据多个组件描述信息确定目标组件,并基于目标组件对目标页面进行动态化渲染。
在本申请实施例中,不限定将多个UI对象之间的级联关系转换为多个目标组件对应的页面布局信息的具体实现方式,可选地,可以根据多个组件之间的级联关系和多个组件描述信息,生成多个组件描述信息对应的文档树,该文档树可以被第一平台识别;其中,文档树的目录结构表示页面布局信息。进一步,在得到第一平台可以识别的文档树的情况下,在DSL描述文件的属性信息中还包括第一组件关联的事件信息的情况下,DSL渲染引擎还可以从属性信息中解析出关联有事件信息的第一目标组件;其中,事件信息至少包括事件触发行为、数据处理方式以及数据传输信息。如下述示例2所示,DSL描述文件中的名称为Text的UI对象包含有事件信息event;在该事件信息中,事件的触发方式为点击方式(onClick);当事件被触发时,执行“showToast”方法;其中,“showToast”方法的参数类型为String类型,参数值为“this is text”。
基于此,DSL渲染引擎在识别到上述事件信息的情况下,可以确定与名称为Text的UI对象对应的第一目标组件,并利用数据绑定管理器(Data Bind Manager)DSL描述文件中的根据事件触发行为、数据处理方式以及数据传输信息,在文档树中为第一目标组件绑定数据响应事件和行为监听事件,以用于在渲染出目标页面的情况下监听目标页面上是否发生事件触发行为,并在行为监听事件监听到事件触发行为的情况下,按照数据处理方式和数据传输信息进行数据处理。例如,在渲染出目标页面的情况下,若监听到针对第一目标组件的点击行为,则执行“showToast”方法,并将Sting类型的“this is text”作为“showToast”方法的参数。
进一步可选地,本申请实施例中根据获取数据方式的不同,对应的数据传输信息表示方式也可以不同。例如,API类型可以表示从某一接口获取数据,URL类型可以表示从某一网站获取数据,Store类型表示从本地获取数据等等;进一步,针对不同的数据获取方式,对应的地址也可以进行区分,例如,在地址Apiname.data.community.name的前缀“Apiname”对应数据获取方式为从接口获取数据;相应地,还可以分别以“Urlname”形式对应从网站获取数据,以及以“Localname”形式对应从本地获取数据;在此仅为示例性说明,具体实现形式不做限定。基于此,在获取数据时,可以从数据传输信息中解析出数据获取地址和数据获取类型,并按照数据获取类型从数据获取地址获取目标数据,以及根据数据处理方式对目标数据进行处理。
Figure BDA0003453507180000131
基于上述,DSL渲染引擎在解析出多个目标组件的基本信息和布局信息以及多个目标组件之间的级联关系,并根据解析到的信息生成多个目标组件对应的文档树的情况下,DSL渲染引擎在利用多个目标组件进行页面渲染时,可以按照文档树的目录结构,依次向第一平台的后端服务器请求获取各目标组件,以及接收后端服务器从组件源码库中依次返回的各目标组件;基于此,DSL渲染引擎可以根据依次获取的各目标组件进行页面渲染,以得到目标页面。
下面结合附图对本申请实施例的整体过程进行说明。图1c为本申请实施例的整体流程图,如图1c所示,DSL渲染引擎在响应到第一平台对应用程序的目标页面发起的渲染请求的情况下,首先判断本地缓存是否包括目标页面对应的DSL描述文件;若有,则从本地缓存获取目标页面对应的DSL描述文件;若没有,则从DSL描述文件管理平台获取目标页面对应的DSL描述文件。进一步,在获取到目标页面对应的DSL描述文件的情况下,DSL渲染引擎可以对DSL描述文件进行解析,获取其中包括的各目标组件的基本信息、布局信息以及各目标组件之间的级联关系;基于此,可以生成目标页面对应的文档树,并根据DSL描述文件中的信息判断各目标组件中是否有包括事件信息的第一目标组件;若有,在文档树中为第一目标组件设置数据响应事件和行为监听事件。进一步,可以从第一平台对应的后端服务器的组件源码库中获取各目标组件,并基于各目标组件进行页面渲染以得到目标页面;若获取失败,说明解析到的目标组件与组件源码库中的组件不对应,可能解析错误,则可对当前DSL描述文件重新解析。在得到目标页面的情况下,可在展示目标页面过程中持续监听目标页面上的第一目标组件是否发生触发事件;若是,则对第一目标组件进行数据绑定和页面刷新。
关于上述整体流程中的细节内容,具体可参见上述实施例,在此不再赘述。在本申请实施例中,在响应到应用程序支持的第一平台针对目标页面发起的渲染请求的情况下,可以获取目标页面对应的DSL描述文件,并识别DSL描述文件中包含的多个UI对象的属性信息以及多个UI对象之间的级联关系;基于此,可以将多个UI对象的属性信息转换为第一平台所能识别的多个组件描述信息,以及将多个UI对象之间的级联关系转换为多个目标组件对应的页面布局信息;进一步,根据页面布局信息和多个组件描述信息,生成第一平台别所能识别的文档树,并为包含有事件信息的组件设置数据响应事件及行为监听事件,以在利用多个目标组件进行页面渲染得到所述目标页面后,在监听到目标组件对应的事件被触发的情况下,可以进行相应的数据处理。由于本申请实施例中DSL描述文件是经过平台特性抽象及重新表达后的通用数据格式,对第一平台没有依赖性,因此,基于该DSL描述文件可以实现跨平台对前端页面动态化渲染;并且,在各平台在基于DSL描述文件对页面渲染时,利用各平台支持的原生组件及原生渲染能力进行页面渲染,具有更高的性能和效率。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤S1至步骤S5的执行主体可以为设备A;又比如,步骤S1的执行主体可以为设备A,步骤S2至步骤S5的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如S1、S2等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本申请实施例还提供一种组件动态渲染装置。例如组件动态渲染装置可实现为通信控制器(Communication Control Unit,CCU)中的虚拟装置,例如应用程序。如图2所示,该组件动态渲染装置包括获取模块201、第一处理模块202、第二处理模块203和渲染模块204;其中:
获取模块201用于响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取目标页面对应的DSL描述文件;其中DSL描述文件是脱离第一平台特性的页面信息描述文件;
第一处理模块202用于识别DSL描述文件中包含的多个UI对象的属性信息以及多个UI对象之间的级联关系;
第二处理模块203用于将多个UI对象的属性信息转换为第一平台所能识别的多个组件描述信息,多个组件描述信息指向第一平台支持的多个目标组件;以及将多个UI对象之间的级联关系转换为多个目标组件对应的页面布局信息;
渲染模块204用于根据页面布局信息和多个组件描述信息,利用多个目标组件进行页面渲染,以得到目标页面。
在一可选实施例中,获取模块201在响应应用程序支持的第一平台针对目标页面发起的渲染请求,并获取目标页面对应的DSL描述文件时,用于响应应用程序支持的第一平台针对目标页面发起的渲染请求,从本地缓存中获取目标页面对应的DSL描述文件;在应用程序启动过程中,获取模块201还用于向DSL描述文件管理平台发送第一DSL描述文件请求,第一DSL描述文件请求中包括应用程序的版本信息和应用程序包含的各页面的标识;接收DSL描述文件管理平台根据应用程序的版本信息和各页面的标识返回的各页面对应的DSL描述文件,并将各页面对应的DSL文件写入本地缓存中。
在一可选实施例中,获取模块201在响应应用程序支持的第一平台针对目标页面发起的渲染请求,并获取目标页面对应的DSL描述文件时,用于响应应用程序支持的第一平台针对目标页面发起的渲染请求,向DSL描述文件管理平台发送第二DSL描述文件请求,第二DSL描述文件请求中包括应用程序的版本信息和目标页面的标识;接收DSL描述文件管理平台根据应用程序的版本信息和目标页面的标识返回的目标页面对应的DSL描述文件。
在一可选实施例中,DSL描述文件的数据结构为视图树结构,第一处理模块202在识别DSL描述文件中包含的多个UI对象的属性信息以及多个UI对象之间的级联关系时,用于对DSL描述文件进行解析,得到视图树中各节点对应的UI对象及其属性信息;根据视图树中各节点之间的级联关系,确定各节点对应的UI对象之间的级联关系。
在一可选实施例中,第二处理模块203在将多个UI对象的属性信息转换为第一平台所能识别的多个组件描述信息时,用于从多个UI对象的属性信息中解析出渲染目标页面所需的多个组件基本信息和多个组件布局信息;根据第一平台支持的语法规则,将多个组件基本信息和多个组件布局信息转换为第一平台支持的多个组件描述信息。
在一可选实施例中,获取模块201还用于获取第一平台对目标页面的指定渲染信息,根据指定渲染信息确定指定渲染组件以及指定渲染组件的组件基本信息和组件布局信息;第二处理模块203在将多个UI对象的属性信息转换为第一平台所能识别的多个组件描述信息时,用于根据第一平台支持的语法规则,将多个UI对象和指定渲染组件的组件基本信息和组件布局信息转换为第一平台支持的多个组件描述信息。
在一可选实施例中,第一处理模块202还用于根据指定渲染的组件基本信息和组件布局信息,确定指定渲染组件和多个目标组件之间的级联关系;其中,指定渲染组件和多个目标组件之间的级联关系共同作为级联关系,指定渲染信息和多个UI对象的属性信息共同作为属性信息。
在一可选实施例中,第二处理模块203在将多个UI对象之间的级联关系转换为多个目标组件对应的页面布局信息时,用于根据级联关系和多个组件描述信息,生成多个组件描述信息对应的文档树,文档树的目录结构表示页面布局信息。
在一可选实施例中,属性信息中还包括第一组件关联的事件信息,事件信息至少包括事件触发行为、数据处理方式以及数据传输信息,第二处理模块203还用于从属性信息中解析出关联有事件信息的第一目标组件;针对第一目标组件,根据事件触发行为、数据处理方式以及数据传输信息,在文档树中为第一目标组件绑定数据响应事件和行为监听事件;其中,行为监听事件用于在渲染出目标页面的情况下监听目标页面上是否发生事件触发行为,数据响应事件用于在行为监听事件监听到事件触发行为的情况下,按照数据处理方式和数据传输信息进行数据处理。
在一可选实施例中,在渲染出目标页面之后,第二处理模块203还用于监听目标页面上是否发生事件触发行为;在监听到事件触发行为的情况下,从数据传输信息中解析出数据获取地址和数据获取类型,按照数据获取类型从数据获取地址获取目标数据,并根据数据处理方式对目标数据进行处理。
在一可选实施例中,渲染模块204在根据页面布局信息和多个组件描述信息,利用多个目标组件进行页面渲染以得到目标页面时,用于按照文档树的目录结构,依次从第一平台支持的组件源码库中获取文档树对应的各目标组件,并根据依次获取的各目标组件进行页面渲染,以得到目标页面。
需要说明的是,关于上述装置中各模块的具体功能和实现过程,可参见上述方法实施例,在此不再赘述。
本申请实施例还提供一种组件动态渲染设备,图3为组件动态渲染设备的结构示意图,如图3所示,组件动态渲染设备包括:处理器31以及存储有计算机程序的存储器32;其中,处理器31和存储器32可以是一个或多个。
存储器32,主要用于存储计算机程序,这些计算机程序可被处理器31执行,致使处理器31控制组件动态渲染设备实现相应功能、完成相应动作或任务。除了存储计算机程序之外,存储器32还可被配置为存储其它各种数据以支持在组件动态渲染设备上的操作。这些数据的示例包括用于在组件动态渲染设备上操作的任何应用程序或方法的指令。
存储器32,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,并不限定处理器31的实现形态,例如可以是但不限于CPU、GPU或MCU等。处理器31可以看作是组件动态渲染设备的控制系统,可用于执行存储器32中存储的计算机程序,以控制组件动态渲染设备实现相应功能、完成相应动作或任务。值得说明的是,根据组件动态渲染设备实现形态以及所处于场景的不同,其所需实现的功能、完成的动作或任务会有所不同;相应地,存储器32中存储的计算机程序也会有所不同,而处理器31执行不同计算机程序可控制组件动态渲染设备实现不同的功能、完成不同的动作或任务。
在一些可选实施例中,如图3所示,组件动态渲染设备还可包括:显示器33、电源组件34以及通信组件35等其它组件。图3中仅示意性给出部分组件,并不意味着组件动态渲染设备只包括图3所示组件,针对不同的应用需求,组件动态渲染设备还可以包括其他组件,例如,在存在语音交互需求的情况下,如图3所示,组件动态渲染设备还可以包括音频组件36。关于组件动态渲染设备可包含的组件,具体可视组件动态渲染设备的产品形态而定,在此不做限定。
在本申请实施例中,当处理器31执行存储器32中的计算机程序时,以用于:响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取目标页面对应的DSL描述文件,DSL描述文件是脱离第一平台特性的页面信息描述文件;识别DSL描述文件中包含的多个UI对象的属性信息以及多个UI对象之间的级联关系;将多个UI对象的属性信息转换为第一平台所能识别的多个组件描述信息,多个组件描述信息指向第一平台支持的多个目标组件;将多个UI对象之间的级联关系转换为多个目标组件对应的页面布局信息;根据页面布局信息和多个组件描述信息,利用多个目标组件进行页面渲染,以得到目标页面。
在一可选实施例中,处理器31在响应应用程序支持的第一平台针对目标页面发起的渲染请求并获取目标页面对应的DSL描述文件时,用于:响应应用程序支持的第一平台针对目标页面发起的渲染请求,从本地缓存中获取目标页面对应的DSL描述文件;相应地,处理器31还用于在应用程序启动过程中,向DSL描述文件管理平台发送第一DSL描述文件请求,其中,第一DSL描述文件请求中包括应用程序的版本信息和应用程序包含的各页面的标识;以及接收DSL描述文件管理平台根据应用程序的版本信息和各页面的标识返回的各页面对应的DSL描述文件,并将各页面对应的DSL文件写入本地缓存中。
在一可选实施例中,处理器31在响应应用程序支持的第一平台针对目标页面发起的渲染请求并获取目标页面对应的DSL描述文件时,还用于:响应应用程序支持的第一平台针对目标页面发起的渲染请求,向DSL描述文件管理平台发送第二DSL描述文件请求,其中,第二DSL描述文件请求中包括应用程序的版本信息和目标页面的标识;以及接收DSL描述文件管理平台根据应用程序的版本信息和目标页面的标识返回的目标页面对应的DSL描述文件。
在一可选实施例中,DSL描述文件的数据结构为视图树结构,处理器31在识别DSL描述文件中包含的多个UI对象的属性信息以及多个UI对象之间的级联关系时,用于对DSL描述文件进行解析,得到视图树中各节点对应的UI对象及其属性信息;根据视图树中各节点之间的级联关系,确定各节点对应的UI对象之间的级联关系。
在一可选实施例中,处理器31在将多个UI对象的属性信息转换为第一平台所能识别的多个组件描述信息时,用于从多个UI对象的属性信息中解析出渲染目标页面所需的多个组件基本信息和多个组件布局信息;根据第一平台支持的语法规则,将多个组件基本信息和多个组件布局信息转换为第一平台支持的多个组件描述信息。
在一可选实施例中,处理器31还用于获取第一平台对目标页面的指定渲染信息,根据所述指定渲染信息确定指定渲染组件以及所述指定渲染组件的组件基本信息和组件布局信息;以及根据第一平台支持的语法规则,将多个UI对象和指定渲染组件的组件基本信息和组件布局信息转换为第一平台支持的多个组件描述信息。
在一可选实施例中,处理器31还用于据指定渲染的组件基本信息和组件布局信息,确定指定渲染组件和多个目标组件之间的级联关系;其中,指定渲染组件和多个目标组件之间的级联关系共同作为级联关系,指定渲染信息和多个UI对象的属性信息共同作为属性信息。
在一可选实施例中,处理器31在将多个UI对象之间的级联关系转换为多个目标组件对应的页面布局信息时,用于根据级联关系和多个组件描述信息,生成多个组件描述信息对应的文档树,文档树的目录结构表示页面布局信息。
在一可选实施例中,属性信息中还包括第一组件关联的事件信息,事件信息至少包括事件触发行为、数据处理方式以及数据传输信息,处理器31还用于从属性信息中解析出关联有事件信息的第一目标组件;针对第一目标组件,根据事件触发行为、数据处理方式以及数据传输信息,在文档树中为第一目标组件绑定数据响应事件和行为监听事件;其中,行为监听事件用于在渲染出目标页面的情况下监听目标页面上是否发生事件触发行为,数据响应事件用于在行为监听事件监听到事件触发行为的情况下,按照数据处理方式和数据传输信息进行数据处理。
在一可选实施例中,在渲染出目标页面之后,处理器31还用于在监听到目标页面发生事件触发行为的情况下,从数据传输信息中解析出数据获取地址和数据获取类型,按照数据获取类型从数据获取地址获取目标数据,并根据数据处理方式对目标数据进行处理。
在一可选实施例中,在根据页面布局信息和多个组件描述信息,利用多个目标组件进行页面渲染时,处理器31用于按照文档树的目录结构,依次从第一平台支持的组件源码库中获取文档树对应的各目标组件,并根据依次获取的各目标组件进行页面渲染,以得到目标页面。
需要说明的是,关于上述组件动态渲染设备中处理器的具体功能,可参见上述方法实施例,在此不再赘述。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由组件动态渲染设备执行的各步骤。
上述实施例中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述实施例中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述实施例中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述实施例的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (14)

1.一种组件动态渲染方法,其特征在于,包括:
响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取所述目标页面对应的DSL描述文件,所述DSL描述文件是脱离所述第一平台特性的页面信息描述文件;
识别所述DSL描述文件中包含的多个UI对象的属性信息以及所述多个UI对象之间的级联关系;
将所述多个UI对象的属性信息转换为所述第一平台所能识别的多个组件描述信息,所述多个组件描述信息指向所述第一平台支持的多个目标组件;
将所述多个UI对象之间的级联关系转换为所述多个目标组件对应的页面布局信息;
根据所述页面布局信息和所述多个组件描述信息,利用所述多个目标组件进行页面渲染,以得到所述目标页面。
2.根据权利要求1所述的方法,其特征在于,响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取所述目标页面对应的DSL描述文件,包括:
响应应用程序支持的第一平台针对目标页面发起的渲染请求,从本地缓存中获取所述目标页面对应的DSL描述文件;
所述方法还包括:在所述应用程序启动过程中,向DSL描述文件管理平台发送第一DSL描述文件请求,所述第一DSL描述文件请求中包括所述应用程序的版本信息和所述应用程序包含的各页面的标识;
接收所述DSL描述文件管理平台根据所述应用程序的版本信息和各页面的标识返回的各页面对应的DSL描述文件,并将各页面对应的DSL文件写入本地缓存中。
3.根据权利要求1所述的方法,其特征在于,响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取所述目标页面对应的DSL描述文件,包括:
响应应用程序支持的第一平台针对目标页面发起的渲染请求,向DSL描述文件管理平台发送第二DSL描述文件请求,所述第二DSL描述文件请求中包括所述应用程序的版本信息和所述目标页面的标识;
接收所述DSL描述文件管理平台根据所述应用程序的版本信息和所述目标页面的标识返回的所述目标页面对应的DSL描述文件。
4.根据权利要求1所述的方法,其特征在于,所述DSL描述文件的数据结构为视图树结构,识别所述DSL描述文件中包含的多个UI对象的属性信息以及所述多个UI对象之间的级联关系,包括:
对所述DSL描述文件进行解析,得到所述视图树中各节点对应的UI对象及其属性信息;
根据所述视图树中各节点之间的级联关系,确定各节点对应的UI对象之间的级联关系。
5.根据权利要求1所述的方法,其特征在于,将所述多个UI对象的属性信息转换为所述第一平台所能识别的多个组件描述信息,包括:
从所述多个UI对象的属性信息中解析出渲染所述目标页面所需的多个组件基本信息和多个组件布局信息;
根据所述第一平台支持的语法规则,将所述多个组件基本信息和多个组件布局信息转换为所述第一平台支持的多个组件描述信息。
6.根据权利要求5所述的方法,其特征在于,还包括:
获取所述第一平台对所述目标页面的指定渲染信息,根据所述指定渲染信息确定指定渲染组件以及所述指定渲染组件的组件基本信息和组件布局信息;
所述将所述多个UI对象的属性信息转换为所述第一平台所能识别的多个组件描述信息,包括:
根据所述第一平台支持的语法规则,将所述多个UI对象和所述指定渲染组件的组件基本信息和组件布局信息转换为所述第一平台支持的多个组件描述信息。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据所述指定渲染的组件基本信息和组件布局信息,确定所述指定渲染组件和所述多个目标组件之间的级联关系;其中,所述指定渲染组件和所述多个目标组件之间的级联关系共同作为级联关系,所述指定渲染信息和所述多个UI对象的属性信息共同作为属性信息。
8.根据权利要求5或7所述的方法,其特征在于,将所述多个UI对象之间的级联关系转换为所述多个目标组件对应的页面布局信息,包括:
根据所述级联关系和所述多个组件描述信息,生成所述多个组件描述信息对应的文档树,所述文档树的目录结构表示所述页面布局信息。
9.根据权利要求8所述的方法,其特征在于,所述属性信息中还包括第一组件关联的事件信息,所述事件信息至少包括事件触发行为、数据处理方式以及数据传输信息,所述方法还包括:
从所述属性信息中解析出关联有事件信息的第一目标组件;
针对所述第一目标组件,根据所述事件触发行为、数据处理方式以及数据传输信息,在所述文档树中为所述第一目标组件绑定数据响应事件和行为监听事件;
其中,所述行为监听事件用于在渲染出所述目标页面的情况下监听所述目标页面上是否发生所述事件触发行为,所述数据响应事件用于在所述行为监听事件监听到所述事件触发行为的情况下,按照所述数据处理方式和所述数据传输信息进行数据处理。
10.根据权利要求9所述的方法,其特征在于,在渲染出所述目标页面之后,所述方法还包括:
监听所述目标页面上是否发生所述事件触发行为;
在监听到所述事件触发行为的情况下,从所述数据传输信息中解析出数据获取地址和数据获取类型,按照所述数据获取类型从所述数据获取地址获取目标数据,并根据所述数据处理方式对所述目标数据进行处理。
11.根据权利要求9-10任一项所述的方法,其特征在于,根据所述页面布局信息和所述多个组件描述信息,利用所述多个目标组件进行页面渲染,以得到所述目标页面,包括:
按照所述文档树的目录结构,依次从所述第一平台支持的组件源码库中获取所述文档树对应的各目标组件,并根据依次获取的所述各目标组件进行页面渲染,以得到所述目标页面。
12.一种组件动态渲染装置,其特征在于,包括:
获取模块,用于响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取所述目标页面对应的DSL描述文件,所述DSL描述文件是脱离所述第一平台特性的页面信息描述文件;
第一处理模块,用于识别所述DSL描述文件中包含的多个UI对象的属性信息以及所述多个UI对象之间的级联关系;
第二处理模块,用于将所述多个UI对象的属性信息转换为所述第一平台所能识别的多个组件描述信息,所述多个组件描述信息指向所述第一平台支持的多个目标组件;以及将所述多个UI对象之间的级联关系转换为所述多个目标组件对应的页面布局信息;
渲染模块,用于根据所述页面布局信息和所述多个组件描述信息,利用所述多个目标组件进行页面渲染,以得到所述目标页面。
13.一种组件动态渲染设备,其特征在于,包括:处理器以及存储有计算机程序的存储器;
所述处理器,用于执行所述计算机程序,以用于:
响应应用程序支持的第一平台针对目标页面发起的渲染请求,获取所述目标页面对应的DSL描述文件,所述DSL描述文件是脱离所述第一平台特性的页面信息描述文件;
识别所述DSL描述文件中包含的多个UI对象的属性信息以及所述多个UI对象之间的级联关系;
将所述多个UI对象的属性信息转换为所述第一平台所能识别的多个组件描述信息,所述多个组件描述信息指向所述第一平台支持的多个目标组件;
将所述多个UI对象之间的级联关系转换为所述多个目标组件对应的页面布局信息;
根据所述页面布局信息和所述多个组件描述信息,利用所述多个目标组件进行页面渲染,以得到所述目标页面。
14.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求1-11任一项所述方法中的步骤。
CN202111672777.9A 2021-12-31 2021-12-31 组件动态渲染方法、装置、设备及介质 Pending CN114547514A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111672777.9A CN114547514A (zh) 2021-12-31 2021-12-31 组件动态渲染方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111672777.9A CN114547514A (zh) 2021-12-31 2021-12-31 组件动态渲染方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN114547514A true CN114547514A (zh) 2022-05-27

Family

ID=81669826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111672777.9A Pending CN114547514A (zh) 2021-12-31 2021-12-31 组件动态渲染方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114547514A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117093218A (zh) * 2023-10-19 2023-11-21 浪潮通用软件有限公司 一种基于界面描述的前端界面渲染方法、设备及介质
CN117369820A (zh) * 2023-09-22 2024-01-09 北京渲光科技有限公司 渲染流程图的生成方法、装置及设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117369820A (zh) * 2023-09-22 2024-01-09 北京渲光科技有限公司 渲染流程图的生成方法、装置及设备
CN117369820B (zh) * 2023-09-22 2024-04-02 北京渲光科技有限公司 渲染流程图的生成方法、装置及设备
CN117093218A (zh) * 2023-10-19 2023-11-21 浪潮通用软件有限公司 一种基于界面描述的前端界面渲染方法、设备及介质
CN117093218B (zh) * 2023-10-19 2024-01-26 浪潮通用软件有限公司 一种基于界面描述的前端界面渲染方法、设备及介质

Similar Documents

Publication Publication Date Title
KR102436987B1 (ko) 웹페이지 콘텐츠를 추출하기 위한 방법 및 단말 장치
US20200357007A1 (en) Page data acquisition method, apparatus, server, electronic device and computer readable medium
CN110162408B (zh) 一种数据处理方法、装置、设备和机器可读介质
TW201441829A (zh) 頁面處理方法和裝置以及頁面生成方法和裝置
CN114547514A (zh) 组件动态渲染方法、装置、设备及介质
CN105335132B (zh) 一种自定义应用程序功能的方法、装置以及系统
CN108415804B (zh) 获取信息的方法、终端设备及计算机可读存储介质
US20210256195A1 (en) Optimization for Browser Rendering During Navigation
CN105786455B (zh) 一种数据处理方法、装置及终端
CN109873735B (zh) H5页面的性能测试方法、装置和计算机设备
CN110968314B (zh) 一种页面生成方法及装置
CN111680253A (zh) 页面应用数据包生成方法、装置、计算机设备及存储介质
CN101957756A (zh) 一种智能移动终端程序快速生成系统及方法
CN111736740B (zh) 图片热区生成方法、装置、设备和存储介质
CN110674444B (zh) 一种动态网页下载的方法及终端
CN112347404A (zh) Spa页面渲染方法、设备、系统及存储介质
CN114996134A (zh) 容器化部署方法、电子设备及存储介质
CN112395027A (zh) 微件界面生成方法、装置、存储介质与电子设备
CN113094138A (zh) 界面显示方法、装置、电子设备及存储介质
CN117271014A (zh) 基于web worker的数据处理方法和客户端
CN114546359A (zh) Dsl描述文件生成方法、装置、设备及存储介质
CN111679828A (zh) 一种数据处理的方法及装置、电子设备、存储介质
CN112346761B (zh) 前端资源上线方法、设备、系统及存储介质
WO2023082645A1 (zh) 一种信息处理方法、装置、设备及存储介质
CN110858238A (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