CN109445784B - 结构数据的处理方法、装置、存储介质及电子设备 - Google Patents

结构数据的处理方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN109445784B
CN109445784B CN201811152477.6A CN201811152477A CN109445784B CN 109445784 B CN109445784 B CN 109445784B CN 201811152477 A CN201811152477 A CN 201811152477A CN 109445784 B CN109445784 B CN 109445784B
Authority
CN
China
Prior art keywords
nodes
node
object model
tree structure
document object
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
CN201811152477.6A
Other languages
English (en)
Other versions
CN109445784A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201811152477.6A priority Critical patent/CN109445784B/zh
Publication of CN109445784A publication Critical patent/CN109445784A/zh
Priority to PCT/CN2019/095439 priority patent/WO2020063031A1/zh
Priority to EP19865354.5A priority patent/EP3842929A4/en
Application granted granted Critical
Publication of CN109445784B publication Critical patent/CN109445784B/zh
Priority to US17/195,173 priority patent/US20210191993A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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/93Document management systems
    • 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/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • 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/904Browsing; Visualisation therefor
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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

Abstract

本申请实施例公开了一种结构数据的处理方法、装置、存储介质及电子设备,其中,本申请实施例通过当接收到原生页面的显示指令时,获取原生页面相应的文档对象模型树结构;对文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点;将目标节点进行合并,生成虚拟节点,并将虚拟节点加载到文档对象模型树结构中;通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。以此可以确定原生页面相应的文档对象模型树结构中的静态节点,将静态节点进行转化并合并,生成虚拟节点并加载到文档对象模型树中,降低了文档对象模型树结构的层次复杂度,提升了结构数据的渲染效率。

Description

结构数据的处理方法、装置、存储介质及电子设备
技术领域
本申请涉及信息处理技术领域,尤其涉及一种结构数据的处理方法、装置、存储介质及电子设备。
背景技术
随着电子技术的不断发展,电子设备如手机的功能越来越强大,用户可以通过各式各样的快应用程序去浏览应用的原生页面,如浏览原生页面上的文字信息、图像信息、音视频信息以及卡片信息等等。
目前,手机在通过快应用程序生成原生页面时,需要调用应用中的渲染引擎对快应用组件相应的快应用代码进行解析和渲染,而快应用组件彼此之间以文档对象模型(Document Object Mode,DOM)树的结构进行存储,每一个快应用组成视为文档对象模型树种的一个节点,由于原生页面的显示内容越来越复杂,导致文档对象树的层次越来越高,进而造成渲染时间越来越长。
发明内容
本申请实施例提供一种结构数据的处理方法、装置、存储介质及电子设备,可以降低结构数据的层次复杂度,提升结构数据的渲染效率。
第一方面,本申请实施例了提供了一种结构数据的处理方法,包括:
当接收到原生页面的显示指令时,获取所述原生页面相应的文档对象模型树结构,所述文档对象模型树结构包括动态节点以及静态节点;
对所述文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点;
将所述目标节点进行合并,生成虚拟节点,并将所述虚拟节点加载到文档对象模型树结构中;
通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。
第二方面,本申请实施例了提供了的一种结构数据的处理装置,包括:
获取单元,用于当接收到原生页面的显示指令时,获取所述原生页面相应的文档对象模型树结构,所述文档对象模型树结构包括动态节点以及静态节点;
转化单元,用于对所述文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点;
合并单元,用于将所述目标节点进行合并,生成虚拟节点,并将所述虚拟节点加载到文档对象模型树结构中;
解析单元,用于通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。
第三方面,本申请实施例提供的存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本申请任一实施例提供的结构数据的处理方法。
第四方面,本申请实施例提供的电子设备,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如本申请任一实施例提供的结构数据的处理方法。
本申请实施例通过当接收到原生页面的显示指令时,获取原生页面相应的文档对象模型树结构;对文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点;将目标节点进行合并,生成虚拟节点,并将虚拟节点加载到文档对象模型树结构中;通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。以此可以确定原生页面相应的文档对象模型树结构中的静态节点,将静态节点进行转化并合并,生成虚拟节点并加载到文档对象模型树中,降低了文档对象模型树结构的层次复杂度,提升了结构数据的渲染效率。
附图说明
下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其它有益效果显而易见。
图1是本申请实施例提供的结构数据的处理方法的流程示意图。
图2为本申请实施例提供的结构数据的处理方法的另一流程示意图。
图3是本申请实施例提供的结构数据的处理方法的场景示意图。
图4为本申请实施例提供的结构数据的处理装置的模块示意图。
图5为本申请实施例提供的结构数据的处理装置的另一模块示意图。
图6为本申请实施例提供的电子设备的结构示意图。
图7为本申请实施例提供的电子设备的另一结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
本文所使用的术语「模块」可看做为在该运算系统上执行的软件对象。本文该的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文该的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本申请保护范围之内。
以下进行具体分析说明。
在本实施例中,将从结构数据的处理装置的角度进行描述,该结构数据的处理装置具体可以集成在电子设备,比如手机、平板电脑、掌上电脑(PDA,Personal DigitalAssistant)等。
本申请实施例提供一种结构数据的处理方法,如图1所示,该结构数据的处理方法,可以包括以下步骤:
在步骤S101中,当接收到原生页面的显示指令时,获取原生页面相应的文档对象模型树结构。
需要说明的是,该原生页面指通过快应用打开的应用原生页面,该快应用指用户无需下载安装应用,即点即用,实时享受原生应用的性能体验,可以很大程度的节省电子设备的存储空间,起到对电子设备“瘦身”的效果。
其中,该原生页面由多个组件构成,如文字组件、图片组件、横向布局组件、纵向布局组件,视频组件等等,该多个组件参考万维网联盟(W3C)的文档对象模型(DocumentObject Model,DOM)标准定义了原生页面的组成方法,也就是说可以将每个组件视为一个节点,组成一棵树形结构,该树形结构成为文档对象模型树结构,该文档对象模型树结构包括动态节点以及静态节点。因此,当用户执行打开原生页面的操作时,电子设备生成并接收原生页面的显示指令,并下载获取原生页面相应的文档对象模型树结构。
在步骤S102中,对文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点。
其中,文档对象模型树结构中包括多个节点,每个节点对应一个组件,而组件映射相应的变量函数,当变量函数中的参数改变时,组件自动根据参数进行更新,由于网页中的组件内容通常有变化部分以及不变部分,该不变部分,对应为静态变量函数,即为静态节点,该变化部分,对应为动态变量函数,即为动态节点。
由于静态节点中的内容不会发生变化,所以可以将静态节点进行合并,以缩短文档对象模型树结构的层次深度,节省后期的渲染的速度,因此,对文档对象模型树结构中的节点进行逐一遍历,将静态变量函数相应的静态节点转化为目标节点。
在一实施方式中,还可以在每一组件中添加特殊标识、增加属性或者使用特殊组件名等其他方式进行标记,使得电子设备可以快速根据标识、属性或者组件名确定出组件为静态组件或者是动态组件。
在一些实施方式中,对文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点的步骤,可以包括:
(1)按照预设规则对对象模型树结构中的节点进行遍历;
(2)判断当前遍历的节点是否为动态节点;
(3)当判断出当前遍历的节点为动态节点时,访问该当前遍历的节点的子节点;
(4)当判断出当前遍历的节点不为动态节点时,将该当前遍历的节点转化为目标节点。
其中,可以按照预设遍历规则,如从上至下规则对对象模型树结构中的每一节点进行逐一遍历,根据节点上组件相应的变量函数的参数是否改变来判断当前遍历的节点是否为动态节点,当节点上组件相应的变量为可以改变的变量时,则判断出当前遍历的节点为动态节点,自动访问该当前遍历的节点的字节点。当节点上组件相应的变量为不可以改变的变量时,则判断出当前遍历的节点为静态节点,将当前遍历的节点转化为目标节点。
在一些实施方式中,该将该当前遍历的节点转化为目标节点的步骤,可以包括:
(1.1)获取该当前遍历的节点以及该当前遍历的节点的子节点;
(1.2)将该子节点合并到该当前遍历的节点中,并将合并后的当前遍历的节点转化为目标节点。
其中,当判断出当前遍历的节点为静态节点时,由于静态节点的子节点也一定为静态节点,所以可以获取该当前遍历的节点以及该当前遍历的节点的字节点,将字节点合并到该当前遍历的节点中,并将合并后的当前遍历的节点转化为目标节点,由于自动将静态节点的字节点合并到父节点上,所以省去了逐一遍历判断的时间,提升了遍历的效率。
在一些实施方式中,该按照预设规则对对象模型树结构中的节点进行遍历的步骤,可以包括基于对象模型树结构的根节点开始遍历,按照从上至下的规则依次遍历对象模型树结构中的节点。
其中,基于对象模型结构的根节点开始遍历,按照从上至下的规则依次遍历对象模型树结构中的节点,该从上至下的规则为将同一级别层的兄弟节点都遍历后,再向下遍历下一级别层中的兄弟节点。
在步骤S103中,将目标节点进行合并,生成虚拟节点,并将虚拟节点加载到文档对象模型树结构中。
其中,由于目标节点为静态节点,都是变量函数的参数不变的节点,所以预先将目标节点进行合并,生成一个总的虚拟节点,并将虚拟节点加载到文档对象模型树结构中,使得文档对象模型树结构的节点复杂度下降,使得后期渲染的效率增加。
在一些实施方式中,该将目标节点进行合并,生成虚拟节点,并将虚拟节点加载到文档对象模型树结构中的步骤,可以包括:
(1)将该目标节点进行依次渲染,生成多个目标组件;
(2)将该多个目标组件进行合并,生成虚拟组件,并将该虚拟组件生成虚拟节点并加载到文档对象模型树结构中。
其中,将多个目标节点进行依次渲染,生成多个目标节点相应的多个目标组件,将该多个目标组件进行合并,生成包含多个目标组件的虚拟组件,并将该虚拟组件加载到文档对象模型树结构中。
在步骤S104中,通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。
其中,该渲染引擎为负责快应用的解析,以及组件绘制的功能,在一实施方式中,该渲染引擎可以为JavaScript脚本语言框架,该JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
进一步的,通过电子设备上的渲染引擎对加载后的文档对象模型树结构进行解析渲染,逐一将组件绘制到显示界面上,以生成原生页面,由于虚拟节点中包含多个组件的集合,在进行解析渲染时,只需要进行一次调用,就可以直接生成多个组件并进行绘制,极大的减少了渲染时间以及通信次数。
由上述可知,本实施例提供的一种结构数据的处理方法,通过当接收到原生页面的显示指令时,获取原生页面相应的文档对象模型树结构;对文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点;将目标节点进行合并,生成虚拟节点,并将虚拟节点加载到文档对象模型树结构中;通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。以此可以确定原生页面相应的文档对象模型树结构中的静态节点,将静态节点进行转化并合并,生成虚拟节点并加载到文档对象模型树中,降低了文档对象模型树结构的层次复杂度,提升了结构数据的渲染效率。
根据上述实施例所描述的方法,以下将举例作进一步详细说明。
请参阅图2,图2为本申请实施例提供的结构数据的处理方法的另一流程示意图。
具体而言,该方法包括:
在步骤S201中,当接收到原生页面的显示指令时,获取原生页面相应的文档对象模型树结构。
需要说明的是,为了更好的说明本实施例,将电子设备以手机为例进行说明。
其中,当手机检测到用户打开快应用时,自动生成原生页面的显示指令,并相应下载获取原生页面相应的文档对象模型树结构,该文档对象模型树结构包括动态节点以及静态节点。
例如,如图3所示,当手机接收到原生页面的显示指令时,手机会下载获取原生页面相应的文档对象模型树结构100。该文档对象模型树结构100包括节点A、节点B、节点C、节点D、节点E、节点F。
在步骤S202中,基于对象模型树结构的根节点开始遍历,按照从上至下的规则依次遍历对象模型树结构中的节点。
其中,手机基于对象模型树结构的根节点开始遍历,按照从上至下的规则依次遍历对象模型树结构中的节点进行遍历。
例如,如图3所示,手机从根节点A开始遍历,按照从上至下的规则依次对节点A、节点B、节点C、节点D、节点E以及节点F进行遍历。
在步骤S203中,判断当前遍历的节点是否为动态节点。
其中,手机根据当前遍历的节点相应的组件的是否为动态变量函数,来判断当前遍历的节点是否为动态节点,在当前遍历的节点相应的组件为动态变量函数时,判断为当前遍历的节点为动态节点,执行步骤S204。在当前遍历的节点相应的组件不为动态变量函数时,判断为当前遍历的节点不为动态节点,执行步骤S205。
例如,如图3所示,手机判断出节点A以及节点C为动态节点。
在步骤S204中,访问当前遍历的节点的子节点。
其中,当判断出当前遍历的节点为动态节点时,自动访问当前遍历的节点的子节点,进而返回步骤S203,继续判断该子节点是否为动态节点。
在步骤S205中,获取当前遍历的节点以及当前遍历的节点的子节点,将子节点合并到当前遍历的节点中,并将合并后的当前遍历的节点转化为目标节点。
其中,当判断出当前遍历节点不为动态节点时,说明当前遍历节点为静态节点,由于静态节点的子节点也一定为静态节点,所以自动获取当前遍历的节点以及当前遍历的节点的字节点,将字节点自动合并到当前遍历的父节点中,并将合并后的当前遍历的节点转化为目标节点。
例如,如图3所示,当判断出节点B为静态节点时,由于节点B为尾节点,所以直接将节点B转化为目标节点,继续遍历,在判断出节点D为静态节点时,将节点D的子节点E以及子节点F合并到父节点D中,并将合并后的节点D生成目标节点。
在步骤S206中,将目标节点进行依次渲染,生成多个目标组件,将多个目标组件进行合并,生成虚拟组件,并将虚拟组件生成虚拟节点并加载到文档对象模型树结构中。
其中,手机依次将目标节点进行渲染,生成每一个目标节点相应的目标组件,将多个目标组件进行合并,生成包含多个目标组件的虚拟组件,基于虚拟组件生成虚拟节点并加载到文档对象模型树结构中。
例如,手机对节点B转化的目标节点进行渲染,生成图片组件1,手机对合并后的节点D转化的目标节点进行渲染,生成包含图片和文本的混合组件2,按照布局规则将图片组件1以及混合组件2进行合并,生成包含两个组件的虚拟组件,根据虚拟组件生成虚拟节点G,并将虚拟节点G加载到文档对象模型书结构中,得到加载后的文档对象模型树结构200,该加载后的文档对象模型树结构200的层次明显低于加载前的文档对象模型树结构100。
在步骤S207中,通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。
其中,通过手机中集成的渲染引擎对加载后的文档对象模型树结构进行解析,将每个节点解析为相应的组件并渲染到显示界面中,以生成原生页面。
例如,通过手机中集成的JavaScript脚本语言框架对加载后的文档对象模型树结构200进行解析,将节点C生成相应的图片组件,将虚拟节点G生成包含多个组件的虚拟组件,将图片组件以及虚拟组件按照位置属性绘制到显示界面中,生成原生页面,由于加载后的文档对象模型树结构200的层次明显低于加载前的文档对象模型树结构100,所以渲染引擎在进行解析时,需要通信调取的次数降低,极大的减少了渲染的时间。
由上述可知,本实施例提供的一种结构数据的处理方法,通过当接收到原生页面的显示指令时,获取原生页面相应的文档对象模型树结构,基于对象模型树结构的根节点开始遍历,按照从上至下的规则依次遍历对象模型树结构中的节点,将静态节点以及静态节点的子节点合并,并将每一静态节点转化为目标节点,将目标节点渲染生成相应的目标组件,并合并生成虚拟组件,根据虚拟组件生成虚拟节点并加载到文档对象模型树结构中,通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。以此可以确定原生页面相应的文档对象模型树结构中的静态节点,将静态节点进行转化并合并,生成虚拟节点并加载到文档对象模型树中,降低了文档对象模型树结构的层次复杂度,提升了结构数据的渲染效率。
为便于更好的实施本申请实施例提供的结构数据的处理方法,本申请实施例还提供一种基于上述结构数据的处理方法的装置。其中名词的含义与上述结构数据的处理方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图4,图4为本申请实施例提供的结构数据的处理装置的模块示意图。具体而言,该结构数据的处理装置300,包括:获取单元31、转化单元32、合并单元33以及解析单元34。
获取单元31,用于当接收到原生页面的显示指令时,获取该原生页面相应的文档对象模型树结构,该文档对象模型树结构包括动态节点以及静态节点。
其中,该原生页面由多个组件构成,如文字组件、图片组件、横向布局组件、纵向布局组件,视频组件等等,该多个组件参考万维网联盟的文档对象模型标准定义了原生页面的组成方法,也就是说可以将每个组件视为一个节点,组成一棵树形结构,该树形结构成为文档对象模型树结构。因此,当用户执行打开原生页面的操作时,获取单元31生成并接收原生页面的显示指令,并下载获取原生页面相应的文档对象模型树结构。
转化单元32,用于对该文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点。
其中,文档对象模型树结构中包括多个节点,每个节点对应一个组件,而组件映射相应的变量函数,当变量函数中的参数改变时,组件自动根据参数进行更新,由于网页中的组件内容通常有变化部分以及不变部分,该不变部分,对应为静态变量函数,即为静态节点,该变化部分,对应为动态变量函数,即为动态节点。
由于静态节点中的内容不会发生变化,所以转化单元32可以将静态节点进行合并,以缩短文档对象模型树结构的层次深度,节省后期的渲染的速度,因此,转化单元32对文档对象模型树结构中的节点进行逐一遍历,将静态变量函数相应的静态节点转化为目标节点。
合并单元33,用于将该目标节点进行合并,生成虚拟节点,并将该虚拟节点加载到文档对象模型树结构中。
其中,由于目标节点为静态节点,都是变量函数的参数不变的节点,所以合并单元33预先将目标节点进行合并,生成一个总的虚拟节点,并将虚拟节点加载到文档对象模型树结构中,使得文档对象模型树结构的节点复杂度下降,使得后期渲染的效率增加。
在一些实施方式中,该合并单元33,具体用于将该目标节点进行依次渲染,生成多个目标组件;将该多个目标组件进行合并,生成虚拟组件,并将该虚拟组件生成虚拟节点并加载到文档对象模型树结构中。
解析单元34,用于通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。
其中,该渲染引擎为负责快应用的解析,以及组件绘制的功能,在一实施方式中,该渲染引擎可以为JavaScript脚本语言框架,该JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
进一步的,解析单元34通过电子设备上的渲染引擎对加载后的文档对象模型树结构进行解析渲染,逐一将组件绘制到显示界面上,以生成原生页面,由于虚拟节点中包含多个组件的集合,在解析单元34进行解析渲染时,只需要进行一次调用,就可以直接生成多个组件并进行绘制,极大的减少了渲染时间以及通信次数。
可一并参考图5,图5为本申请实施例提供的结构数据的处理装置的另一模块示意图,该结构数据的处理装置300还可以包括:
其中,该转化单元32可以包括遍历子单元321、判断子单元322、访问子单元323以及转化子单元324。
进一步的,该遍历子单元321,用于按照预设规则对对象模型树结构中的节点进行遍历。该判断子单元322,用于判断当前遍历的节点是否为动态节点。访问子单元323,用于当判断出当前遍历的节点为动态节点时,访问该当前遍历的节点的子节点。转化子单元324,用于当判断出当前遍历的节点不为动态节点时,将该当前遍历的节点转化为目标节点。
在一些实施方式中,该转化子单元324具体用于获取该当前遍历的节点以及该当前遍历的节点的子节点;将该子节点合并到该当前遍历的节点中,并将合并后的当前遍历的节点转化为目标节点。
在一些实施方式中,该遍历子单元321,具体用于基于对象模型树结构的根节点开始遍历,按照从上至下的规则依次遍历对象模型树结构中的节点。
由上述可知,本实施例提供的一种结构数据的处理装置,通过当获取单元31接收到原生页面的显示指令时,获取原生页面相应的文档对象模型树结构;转化单元32对文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点;合并单元33将目标节点进行合并,生成虚拟节点,并将虚拟节点加载到文档对象模型树结构中;解析单元34通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。以此可以确定原生页面相应的文档对象模型树结构中的静态节点,将静态节点进行转化并合并,生成虚拟节点并加载到文档对象模型树中,降低了文档对象模型树结构的层次复杂度,提升了结构数据的渲染效率。
本申请实施例还提供一种电子设备。请参阅图6,电子设备500包括处理器501以及存储器502。其中,处理器501与存储器502电性连接。
该处理器500是电子设备500的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在存储器502内的计算机程序,以及调用存储在存储器502内的数据,执行电子设备500的各种功能并处理数据,从而对电子设备500进行整体监控。
该存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
在本申请实施例中,电子设备500中的处理器501会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器502中,并由处理器501运行存储在存储器502中的计算机程序,从而实现各种功能,如下:
当接收到原生页面的显示指令时,获取该原生页面相应的文档对象模型树结构,该文档对象模型树结构包括动态节点以及静态节点;
对该文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点;
将该目标节点进行合并,生成虚拟节点,并将该虚拟节点加载到文档对象模型树结构中;
通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。
在某些实施方式中,该文档对象模型树结构包括动态节点以及静态节点,该对该文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点时,处理器501可以具体执行以下步骤:
按照预设规则对对象模型树结构中的节点进行遍历;
判断当前遍历的节点是否为动态节点;
当判断出当前遍历的节点为动态节点时,访问该当前遍历的节点的子节点;
当判断出当前遍历的节点不为动态节点时,将该当前遍历的节点转化为目标节点。
在某些实施方式中,在将该当前遍历的节点转化为目标节点时,处理器501可以具体执行以下步骤:
获取该当前遍历的节点以及该当前遍历的节点的子节点;
将该子节点合并到该当前遍历的节点中,并将合并后的当前遍历的节点转化为目标节点。
在某些实施方式中,在按照预设规则对对象模型树结构中的节点进行遍历时,处理器501可以具体执行以下步骤:
基于对象模型树结构的根节点开始遍历,按照从上至下的规则依次遍历对象模型树结构中的节点。
在某些实施方式中,在将该目标节点进行合并,生成虚拟节点,并将该虚拟节点加载到文档对象模型树结构中时,处理器501可以具体执行以下步骤:
将该目标节点进行依次渲染,生成多个目标组件;
将该多个目标组件进行合并,生成虚拟组件,并将该虚拟组件生成虚拟节点并加载到文档对象模型树结构中。
由上述可知,本申请实施例的电子设备,通过当接收到原生页面的显示指令时,获取原生页面相应的文档对象模型树结构;对文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点;将目标节点进行合并,生成虚拟节点,并将虚拟节点加载到文档对象模型树结构中;通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。以此可以确定原生页面相应的文档对象模型树结构中的静态节点,将静态节点进行转化并合并,生成虚拟节点并加载到文档对象模型树中,降低了文档对象模型树结构的层次复杂度,提升了结构数据的渲染效率。
请一并参阅图7,在某些实施方式中,电子设备500还可以包括:显示器503、射频电路504、音频电路505以及电源506。其中,其中,显示器503、射频电路504、音频电路505以及电源506分别与处理器501电性连接。
该显示器503可以用于显示由用户输入的信息或提供给用户的信息以及各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示器503可以包括显示面板,在某些实施方式中,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、或者有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板。
该射频电路504可以用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
该音频电路505可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。
该电源506可以用于给电子设备500的各个部件供电。在一些实施例中,电源506可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管图7中未示出,电子设备500还可以包括摄像头、蓝牙模块等,在此不再赘述。
本申请实施例还提供一种存储介质,该存储介质存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上述任一实施例中的结构数据的处理方法,比如:通过当接收到原生页面的显示指令时,获取原生页面相应的文档对象模型树结构,该文档对象模型树结构包括动态节点以及静态节点;对文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点;将目标节点进行合并,生成虚拟节点,并将虚拟节点加载到文档对象模型树结构中;通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面。
在本申请实施例中,存储介质可以是磁碟、光盘、只读存储器(Read Only Memory,ROM,)、或者随机存取记忆体(Random Access Memory,RAM)等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对本申请实施例的结构数据的处理方法而言,本领域普通测试人员可以理解实现本申请实施例的结构数据的处理方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,如存储在电子设备的存储器中,并被该电子设备内的至少一个处理器执行,在执行过程中可包括如结构数据的处理方法的实施例的流程。其中,该的存储介质可为磁碟、光盘、只读存储器、随机存取记忆体等。
对本申请实施例的结构数据的处理装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,该存储介质譬如为只读存储器,磁盘或光盘等。
以上对本申请实施例所提供的一种结构数据的处理方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (5)

1.一种结构数据的处理方法,其特征在于,包括:
当接收到原生页面的显示指令时,获取所述原生页面相应的文档对象模型树结构,所述文档对象模型树结构包括动态节点以及静态节点;
对所述文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点;
将所述目标节点进行合并,生成虚拟节点,并将所述虚拟节点加载到文档对象模型树结构中;
通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面;
所述对所述文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点的步骤,包括:
按照预设规则对文档对象模型树结构中的节点进行遍历;
判断当前遍历的节点是否为动态节点;
当判断出当前遍历的节点为动态节点时,访问所述当前遍历的节点的子节点;
当判断出当前遍历的节点不为动态节点时,将所述当前遍历的节点转化为目标节点;
所述按照预设规则对文档对象模型树结构中的节点进行遍历的步骤,包括:
基于文档对象模型树结构的根节点开始遍历,按照从上至下的规则依次遍历文档对象模型树结构中的节点;
所述将所述当前遍历的节点转化为目标节点的步骤,包括:
获取所述当前遍历的节点以及所述当前遍历的节点的子节点;
将所述子节点合并到所述当前遍历的节点中,并将合并后的当前遍历的节点转化为目标节点。
2.如权利要求1所述的结构数据的处理方法,其特征在于,所述将所述目标节点进行合并,生成虚拟节点,并将所述虚拟节点加载到文档对象模型树结构中的步骤,包括:
将所述目标节点进行依次渲染,生成多个目标组件;
将所述多个目标组件进行合并,生成虚拟组件,并将所述虚拟组件生成虚拟节点并加载到文档对象模型树结构中。
3.一种结构数据的处理装置,其特征在于,包括:
获取单元,用于当接收到原生页面的显示指令时,获取所述原生页面相应的文档对象模型树结构,所述文档对象模型树结构包括动态节点以及静态节点;
转化单元,用于对所述文档对象模型树结构中的节点进行遍历,将静态节点转化为目标节点;
合并单元,用于将所述目标节点进行合并,生成虚拟节点,并将所述虚拟节点加载到文档对象模型树结构中;
解析单元,用于通过渲染引擎对加载后的文档对象模型树结构进行解析,以生成原生页面;
所述转化单元,包括:
遍历子单元,用于基于文档对象模型树结构的根节点开始遍历,按照从上至下的规则依次遍历文档对象模型树结构中的节点;
判断子单元,用于判断当前遍历的节点是否为动态节点;
访问子单元,用于当判断出当前遍历的节点为动态节点时,访问所述当前遍历的节点的子节点;
转化子单元,用于当判断出当前遍历的节点不为动态节点时,获取所述当前遍历的节点以及所述当前遍历的节点的子节点,将所述子节点合并到所述当前遍历的节点中,并将合并后的当前遍历的节点转化为目标节点。
4.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至2任一项所述的结构数据的处理方法。
5.一种电子设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器通过调用所述计算机程序,用于执行如权利要求1至2任一项所述的结构数据的处理方法。
CN201811152477.6A 2018-09-29 2018-09-29 结构数据的处理方法、装置、存储介质及电子设备 Active CN109445784B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201811152477.6A CN109445784B (zh) 2018-09-29 2018-09-29 结构数据的处理方法、装置、存储介质及电子设备
PCT/CN2019/095439 WO2020063031A1 (zh) 2018-09-29 2019-07-10 结构数据的处理方法、装置、存储介质及电子设备
EP19865354.5A EP3842929A4 (en) 2018-09-29 2019-07-10 STRUCTURED DATA PROCESSING PROCESS AND APPARATUS, AND STORAGE MEDIA AND ELECTRONIC DEVICE
US17/195,173 US20210191993A1 (en) 2018-09-29 2021-03-08 Processing Method for Structured Data, Storage Medium and Electronic Device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811152477.6A CN109445784B (zh) 2018-09-29 2018-09-29 结构数据的处理方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN109445784A CN109445784A (zh) 2019-03-08
CN109445784B true CN109445784B (zh) 2020-08-14

Family

ID=65545944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811152477.6A Active CN109445784B (zh) 2018-09-29 2018-09-29 结构数据的处理方法、装置、存储介质及电子设备

Country Status (4)

Country Link
US (1) US20210191993A1 (zh)
EP (1) EP3842929A4 (zh)
CN (1) CN109445784B (zh)
WO (1) WO2020063031A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109445784B (zh) * 2018-09-29 2020-08-14 Oppo广东移动通信有限公司 结构数据的处理方法、装置、存储介质及电子设备
CN111694833B (zh) * 2019-03-12 2023-07-25 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备和计算机可读存储介质
CN112579066A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 图表展示方法、装置、存储介质及设备
CN111143725A (zh) * 2019-11-15 2020-05-12 北京字节跳动网络技术有限公司 页面生成方法、装置和电子设备
US11886533B2 (en) * 2020-01-29 2024-01-30 Google Llc Transferable neural architecture for structured data extraction from web documents
CN112905922A (zh) * 2021-01-26 2021-06-04 北京达佳互联信息技术有限公司 页面加载方法、装置、电子设备、存储介质及程序产品
CN113485782A (zh) * 2021-07-29 2021-10-08 北京百度网讯科技有限公司 页面数据获取方法、装置、电子设备及介质
CN114265916A (zh) * 2021-12-23 2022-04-01 深圳前海微众银行股份有限公司 文档目录的生成方法、装置、终端设备及存储介质
CN114995859A (zh) * 2022-06-29 2022-09-02 深圳前海微众银行股份有限公司 页面热更新方法、装置、设备及存储介质
CN117667278A (zh) * 2022-08-31 2024-03-08 华为技术有限公司 一种界面显示方法、设备及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1265130A2 (en) * 2001-06-07 2002-12-11 Sun Microsystems, Inc. Method and apparatus for runtime merging of hierarchical trees
CN101329665A (zh) * 2007-06-18 2008-12-24 国际商业机器公司 解析标记语言文档的方法和解析器
CN101957816A (zh) * 2009-07-13 2011-01-26 上海谐宇网络科技有限公司 基于多页面比较的网页元数据自动抽取方法和系统
CN102890681A (zh) * 2011-07-20 2013-01-23 阿里巴巴集团控股有限公司 一种生成网页结构模板的方法及系统
CN108228188A (zh) * 2018-01-08 2018-06-29 武汉斗鱼网络科技有限公司 一种视图组件处理方法、电子设备及可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253937B (zh) * 2010-05-18 2013-03-13 阿里巴巴集团控股有限公司 获取网页中的感兴趣信息的方法及相关装置
CN102375847B (zh) * 2010-08-17 2014-06-04 富士通株式会社 形成用于生成文档模板的合并树的方法以及装置
US10169481B2 (en) * 2015-02-18 2019-01-01 Adobe Systems Incorporated Method for intelligent web reference preloading based on user behavior prediction
CN107943929B (zh) * 2017-11-22 2021-09-28 福州大学 基于dom树抽象的包装器自动生成方法
CN109445784B (zh) * 2018-09-29 2020-08-14 Oppo广东移动通信有限公司 结构数据的处理方法、装置、存储介质及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1265130A2 (en) * 2001-06-07 2002-12-11 Sun Microsystems, Inc. Method and apparatus for runtime merging of hierarchical trees
CN101329665A (zh) * 2007-06-18 2008-12-24 国际商业机器公司 解析标记语言文档的方法和解析器
CN101957816A (zh) * 2009-07-13 2011-01-26 上海谐宇网络科技有限公司 基于多页面比较的网页元数据自动抽取方法和系统
CN102890681A (zh) * 2011-07-20 2013-01-23 阿里巴巴集团控股有限公司 一种生成网页结构模板的方法及系统
CN108228188A (zh) * 2018-01-08 2018-06-29 武汉斗鱼网络科技有限公司 一种视图组件处理方法、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN109445784A (zh) 2019-03-08
EP3842929A1 (en) 2021-06-30
US20210191993A1 (en) 2021-06-24
WO2020063031A1 (zh) 2020-04-02
EP3842929A4 (en) 2021-12-01

Similar Documents

Publication Publication Date Title
CN109445784B (zh) 结构数据的处理方法、装置、存储介质及电子设备
CN109358936B (zh) 信息处理方法、装置、存储介质、电子设备及系统
CN109408136B (zh) 信息处理方法、装置、存储介质及电子设备
CN110795195B (zh) 一种网页渲染方法、装置、电子设备及存储介质
US20210191996A1 (en) Method for displaying application page, non-transitory storage medium and electronic device
CN108287918B (zh) 基于应用页面的音乐播放方法、装置、存储介质和电子设备
CN107247691B (zh) 一种文本信息的显示方法、装置、移动终端及存储介质
CN111580879A (zh) 小程序的运行方法、装置、电子设备及计算机存储介质
CN105740263B (zh) 页面显示方法和装置
CN111240777B (zh) 动态壁纸生成方法、装置、存储介质及电子设备
CN109933381B (zh) 一种内核的加载方法及装置
CN109902282B (zh) 一种文字排版方法、装置和存储介质
CN114185491B (zh) 一种分区文件的下载方法、装置、存储介质及计算机设备
WO2020206691A1 (zh) 应用程序的处理方法、装置、存储介质及电子设备
CN110471701B (zh) 图像渲染的方法、装置、存储介质及电子设备
CN111324343B (zh) 代码生成方法以及装置
CN102193806B (zh) 更新动画的方法和装置
CN115510347A (zh) 演示文稿的转换方法、装置、电子设备及存储介质
CN107122177A (zh) 界面展示方法及装置
CN114625439A (zh) 基于微前端架构的子应用运行方法、电子设备及存储介质
CN111240776B (zh) 动态壁纸设置方法、装置、存储介质及电子设备
CN112650540B (zh) 一种启动快应用的方法及相关装置
CN112100553B (zh) 一种网页页面配置方法、装置、电子设备及存储介质
CN114020309B (zh) 通过webpack构建多页面应用的方法、装置及存储介质
CN113779483B (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