数据处理的方法、装置、设备及存储介质制造方法及图纸

技术编号:27740614 阅读:24 留言:0更新日期:2021-03-19 13:33
本发明专利技术实施例公开了一种数据处理的方法、装置、设备及存储介质。首先通过接收混合虚拟标记语言HVML文档;之后根据HVML文档中的元素确定虚拟DOM文档对象树;最后根据虚拟DOM文档对象树按照深度优先的顺序生成有效DOM文档对象树。本发明专利技术实施例解决了现有技术中存在的编程语言解释器或编译器无法有效对HVML文档进行解释或编译的问题,实现了根据HVML文档生成有效DOM文档对象树。

【技术实现步骤摘要】
数据处理的方法、装置、设备及存储介质
本专利技术涉及数据处理领域,尤其涉及一种数据处理的方法、装置、设备及存储介质。
技术介绍
随着互联网技术和网络Web应用的发展,围绕超文本标记语言(HypertextMarkupLanguage,HTML)/层叠样式表(CascadingStyleSheets,CSS)/Java描述语言(JavaScript)发展出来的Web前端开发技术发展迅猛。由于虚拟文档对象模型(DocumentObjectModel,DOM)技术中,脚本并不使用脚本程序直接操作真实的DOM树,一方面简化了前端开发的复杂性,另一方面减少了由于动态修改页面内容而对DOM树的频繁操作,从而提高页面的渲染效率和用户体验。此外虚拟DOM,即vDOM技术中,程序对某个数据的修改,还可以直接反应到该数据绑定的页面内容上,开发者无需主动或直接地调用相关接口来操作DOM树,因此降低了开发者的工作量。但是,现有方案中的编程语言解释器或编译器存在无法有效对HVML文档进行解释或编译的问题。
技术实现思路
本专利技术实施例提供了一种数据处理的方法、装置、设备及存储介质,解决了现有技术中存在的编程语言解释器或编译器无法有效对HVML文档进行解释或编译的问题,实现了根据HVML文档生成有效DOM文档对象树。为了解决上述技术问题,本专利技术:第一方面,提供了一种数据处理的方法,该方法包括:接收混合虚拟标记语言HVML文档;根据所述HVML文档中的元素确定所述虚拟DOM文档对象树;根据虚拟DOM文档对象树按照深度优先的顺序生成有效DOM文档对象树。第二方面,提供了一种数据处理的装置,该装置包括:接收模块,用于接收混合虚拟标记语言HVML文档;处理模块,用于根据所述HVML文档中的元素确定所述虚拟DOM文档对象树;所述处理模块,还用于根据虚拟DOM文档对象树按照深度优先的顺序生成有效DOM文档对象树。第三方面,提供了一种电子设备,该设备包括:处理器以及存储有计算机程序指令的存储器;所述处理器执行所述计算机程序指令时实现第一方面的数据处理的方法。第四方面,提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现第一方面的数据处理的方法。本专利技术实施例中提供的数据处理的方法、装置、设备及存储介质。通过首先接收混合虚拟标记语言HVML文档;之后根据所述HVML文档中的元素确定所述虚拟DOM文档对象树;最后根据虚拟DOM文档对象树按照深度优先的顺序生成有效DOM文档对象树。所以解决了现有技术中存在的编程语言解释器或编译器无法有效对HVML文档进行解释或编译的问题,实现了根据HVML文档生成有效DOM文档对象树。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种HVML解释器与用户代理进行数据传递的系统架构图;图2是本专利技术实施例提供的一种HVML解释器的系统示意图;图3是本专利技术实施例提供的一种数据处理的方法的流程示意图;图4是本专利技术实施例提供的一种虚拟DOM文档对象树;图5是本专利技术实施例提供的一种eDOM树示意图;图6是本专利技术实施例提供的另一种eDOM树示意图;图7是本专利技术实施例提供的一种与栈有关的示意图;图8是本专利技术实施例构造的一种求值树的示意图;图9是本专利技术实施例提供的一种数据处理的装置;图10是本专利技术实施例提供的一种计算设备的结构图。具体实施方式下面将详细描述本专利技术的各个方面的特征和示例性实施例,为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本专利技术,并不被配置为限定本专利技术。对于本领域技术人员来说,本专利技术可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本专利技术的示例来提供对本专利技术更好的理解。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。随着互联网技术和Web应用的发展,围绕HTML/CSS/JavaScript发展出来的Web前端开发技术发展迅猛,甚至可以用“一日千里”来形容。几年前,基于jQuery和Bootstrap的前端框架大行其道,而最近,基于虚拟DOM技术的框架又受到前端开发者的青睐,比如著名的React.js、Vue.js等。值得注意的是,微信小程序、快应用等,也不约而同使用了这种虚拟DOM技术来构建应用框架。所谓“虚拟DOM”是指前端应用程序通过JavaScript来创建和维护一个虚拟的文档对象树,应用程序并不直接操作真实的DOM树。在虚拟DOM树中,通过一些特别的属性实现了基于数据的一些流程控制,如条件、循环等。虚拟DOM技术提供如下一些好处:1.由于脚本并不使用脚本程序直接操作真实的DOM树,故而一方面通过现有的框架简化了前端开发的复杂性,另一方面通过优化对真实DOM数的操作而减少了由于动态修改页面内容而对DOM树的频繁操作,从而提高页面的渲染效率和用户体验。2.通过虚拟DOM技术,程序对某个数据的修改,可以直接反应到该数据绑定的页面内容上,开发者无需主动或直接地调用相关接口来操作DOM树。这种技术提供了所谓的“响应式”编程,极大降低了开发者的工作量。基于虚拟DOM思想基础上,专利技术人在开发一款针对物联网及云环境中使用的新一代操作系统的过程中,提出了一种全新的数据驱动的动态标记语言,称为混合虚拟标记语言(HybridVirtualMarkupLanguage,HVML),HVML属于一种全新的领域特定语言(domainspecificlanguage,DSL)。HVML的思想主要来源于虚拟DOM技术,但和Vue.js、小程序、快应用等不同,HVML采用类似可扩展标记语言(ExtensibleMarkupLanguage,XML)/HTML的语法描述虚拟DOM,通过具有特定语义的动作标签来定义如何生成实际的XML/HTML文档内容,以及如何更新XML/HTML内容。另外,HVML是一种可以脱离浏览器环境使用的编程语言,比如在Python或者C/C本文档来自技高网...

【技术保护点】
1.一种数据处理的方法,其特征在于,所述方法包括:/n接收混合虚拟标记语言HVML文档;/n根据所述HVML文档中的元素确定虚拟DOM文档对象树;/n根据虚拟DOM文档对象树按照深度优先的顺序生成有效DOM文档对象树。/n

【技术特征摘要】
1.一种数据处理的方法,其特征在于,所述方法包括:
接收混合虚拟标记语言HVML文档;
根据所述HVML文档中的元素确定虚拟DOM文档对象树;
根据虚拟DOM文档对象树按照深度优先的顺序生成有效DOM文档对象树。


2.根据权利要求1所述的方法,其特征在于,所述根据所述HVML文档中的元素确定所述虚拟DOM文档对象树,包括:
确定所述HVML文档中使用预设语言标签定义的第一目标元素;
根据所述第一目标元素确定所述虚拟DOM文档对象树的元素节点;
确定HVML文档中包括文本内容的第二目标元素;
将所述第二目标元素的文本内容复制到与所述第二目标元素对应的元素节点中,生成所述虚拟DOM文档对象树。


3.根据权利要求1所述的方法,其特征在于,所述根据虚拟DOM文档对象树按照深度优先的顺序生成有效DOM文档对象树,包括:
确定所述虚拟DOM文档对象树中的使用预设语言标签定义的骨架元素;
将所述骨架元素插入预设的空DOM文档对象树中,生成第一DOM文档对象树;
按照深度优先的顺序,执行骨架元素中预设子动作元素对应的指令;
将所述指令的执行结果插入所述第一DOM文档对象树中与所述预设子动作元素对应的位置,生成所述有效DOM文档对象树。


4.根据权利要求3所述的方法,其特征在于,所述按照深度优先的顺序,执行骨架元素中预设子动作元素对应的指令,包括:
按照深度优先的顺序,确定所述骨架元素中的预设子动作元素;
根据所述预设子动作元素的父动作元素的执行结果确定初始输入数据;
根据所述预设子动作元素的父元素确定所述子动作元素所在的虚拟DOM子树;
根据所述虚拟DOM子树确定与所述子动作元素相关的局部变量;
根据所述初始输入数据和所述局部变量执行所述预设子动作元素对应的指令。


5.根据权利要求3所述的方法,其特征在于,所述按照深度优先的顺序,执行骨架元素中预设子动作元素对应的指令,包括:
按照深度优先的顺序,每执行一个预设子动作元素对应的指令,对所述预设子动作元素做一次压栈操作;
当所述骨架元素中的第一目标动作元素对应的第一指令,以及所述第一目标动作元素的子动作元素对应的第二指令全部执行完毕时,做一次出栈操作;
当出栈操作达到栈顶,且获取到事件数据时,执行与所述事件数据对应的预设第一动作子树。


6.根据权利要求5所述的方法,其特征在于,当出栈操作达到栈顶,且获取到事件数据时,执行与所述事件数据对应的预设第一动作子树,包括:
根据所述预设第一动作子树,按照深度优先的顺序,每执行一次预设第一动作子树中子动作元素对应的指令,对所述子动作元素做一次压栈操作;
当所述预设第一动作子树中的第二目标动作元素对应的第三指令,以及所述第二目标动作元素的子动作元素对应的第四指令全部执行完毕时,做一次出栈操作。


7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
按照异步执行的方式,根据预设第二动作子树,按照深度优先的顺序,每执行一次预设第二动作子...

【专利技术属性】
技术研发人员:魏永明耿岳薛淑明
申请(专利权)人:北京飞漫软件技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1