CN118034738A - 一种应用更新方法、装置及存储介质 - Google Patents

一种应用更新方法、装置及存储介质 Download PDF

Info

Publication number
CN118034738A
CN118034738A CN202410208955.XA CN202410208955A CN118034738A CN 118034738 A CN118034738 A CN 118034738A CN 202410208955 A CN202410208955 A CN 202410208955A CN 118034738 A CN118034738 A CN 118034738A
Authority
CN
China
Prior art keywords
information
application
updating
configuration information
target element
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
CN202410208955.XA
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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202410208955.XA priority Critical patent/CN118034738A/zh
Publication of CN118034738A publication Critical patent/CN118034738A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种应用更新方法、装置及存储介质。该方法可应用于具有处理能力的电子设备,该方法包括:电子设备获取用户针对第一应用的更新操作,更新操作包括至少一种类型的操作。电子设备根据更新操作生成至少一个第一信息,第一信息包括操作针对的元素及元素对应的第一配置信息,第一配置信息用于更新第一应用中元素的配置,不同类型的操作对应的第一信息不同。电子设备根据至少一个第一信息对第一应用进行更新。通过该方法可以减少应用更新过程产生的冗余及资源消耗。

Description

一种应用更新方法、装置及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用更新方法、装置及存储介质。
背景技术
低代码平台提供用户一种少量编码甚至无需编码的方式开发软件系统,具有研发效率高、产品周期短、维护成本低等优点。同时,还能支持非开发人员通过拖拽式交互的可视化界面,直接参与到软件研发工作中,进一步降低软件系统研发的技术门槛与人力成本。低代码应用可以是以表单为主的应用,表单的作用是支持用户提交信息。开发人员可以通过低代码平台进行表单设计,并通过搭建表单定义低代码应用的应用模型。
低代码平台通常采用schema的形式存储应用模型的信息,当需要对应用模型进行更新时,需对应用模型的schema内容进行频繁编辑修改,编辑过程中产生较多冗余和资源消耗。
发明内容
本申请提供一种应用更新方法、装置及存储介质,用以减少应用更新过程中的资源消耗,提高应用更新的效率。
第一方面,本申请提供一种应用更新方法。该方法可应用于具有处理能力的电子设备,该方法包括:获取用户针对第一应用的更新操作,更新操作包括至少一种类型的操作。根据更新操作生成至少一个第一信息,第一信息包括操作针对的元素及元素对应的第一配置信息,第一配置信息用于更新第一应用中元素的配置,不同类型的操作对应的第一信息不同。
本申请实施例中,通过定义操作对应的数据结构,则对于用户的更新操作,可以将更新操作分为至少一种类型的操作。则电子设备可以获取更新操作,根据更新生成至少一个第一信息,不同类型的操作对应的第一信息不同,通过至少一个第一信息对第一应用进行更新。也就是说,将应用更新过程中的步骤进行拆分,每种类型的操作生成对应的第一信息,通过第一信息实现对第一应用的更新,可以优化更新编辑生成的数据结构,减少应用更新过程产生的冗余及资源消耗。另外,第一信息对应的同一种类型的更新操作的数量不作限定,可以单独一个操作生成一个第一信息,或者多个同类型的操作生成一个第一信息。
在一种可选的实施方式中,根据更新操作生成至少一个第一信息,包括:确定更新操作中的第一操作的移动轨迹。根据该移动轨迹确定第一操作针对的元素及至少一个目标元素,至少一个目标元素为元素的父元素。根据元素在至少一个目标元素中的位置下标生成第一操作对应的第一配置信息,第一配置信息还包括元素及至少一个目标元素的JSON配置信息。
在一种可选的实施方式中,根据至少一个第一信息对第一应用进行更新,包括:根据第一操作对应的第一配置信息将元素新增至第一目标元素对应的位置下标,并将元素的JSON配置信息新增至第一目标元素的JSON配置信息。或者,根据第一操作对应的第一配置信息将元素从所述第一目标元素对应的位置下标中删除,并将元素的JSON配置信息从第一目标元素的JSON配置信息中删除。
本申请实施例中,若第一操作为新增或删除操作,可以根据第一操作对应的第一配置信息将第一操作针对的元素添加至第一应用的应用模型,或者将第一操作针对的元素从第一应用的应用模型中删除,并对应调整相应目标元素的JSON配置信息。
在一种可选的实施方式中,根据至少一个第一信息对所述第一应用进行更新,包括:根据第一操作对应的第一配置信息将元素从第二目标元素对应的位置下标移动至第三目标元素对应的位置下标,并更新第二目标元素及第三目标元素的JSON配置信息。
本申请实施例中,若第一操作为移动操作,可以根据第一操作对应的第一配置信息将第一操作针对的元素从第二目标元素移动至第三目标元素下,并对应调整相应目标元素的JSON配置信息,可以减小编辑操作产生的冗余和资源消耗。
在一种可选的实施方式中,根据至少一个第一信息对第一应用进行更新,包括:根据第一操作对应的第一配置信息对元素的第四目标元素的JSON配置信息进行修改。
在一种可选的实施方式中,该方法还包括:查询虚拟节点树,确定虚拟节点树中的至少一个虚拟节点,虚拟节点树为第一应用对应的虚拟节点树,至少一个虚拟节点为通过至少一个第一信息更新后的节点。对至少一个虚拟节点中的第一信息进行渲染。
本申请中,渲染器管理一套虚拟节点树,使用的特定算法进行差异项更新,使得渲染器可以针对每个生成的第一信息进行分别渲染,可以提高提升动态渲染效率。
在一种可选的实施方式中,该方法还包括:将至少一个第一信息存入历史记录栈。在将至少一个第一信息存入历史记录栈之后,该方法还包括:根据历史记录栈中的至少一个第一信息生成至少一个第二信息,第二信息与第一信息一一对应,一个第二信息对应的操作为与第一信息的操作相对应的回滚操作。根据至少一个第二信息对第一应用的编辑进行回滚。
本申请中,可以根据至少一个第一信息对至少一个第一信息对应的操作进行倒置,使得可以实现更新回滚。
第二方面,本申请提供一种电子设备。电子设备包括:获取模块、生成模块及更新模块。其中,获取模块用于获取用户针对第一应用的更新操作,更新操作包括至少一种类型的操作。生成模块用于根据更新操作生成至少一个第一信息,第一信息包括操作针对的元素及元素对应的第一配置信息,第一配置信息用于更新第一应用中元素的配置,不同类型的操作对应的第一信息不同。更新模块用于根据至少一个第一信息对第一应用进行更新。
在一种可选的实施方式中,生成模块具体用于:确定更新操作中的第一操作的移动轨迹。根据该移动轨迹确定第一操作针对的元素及至少一个目标元素,至少一个目标元素为元素的父元素。根据元素在至少一个目标元素中的位置下标生成第一操作对应的第一配置信息,第一配置信息还包括元素及至少一个目标元素的JSON配置信息。
在一种可选的实施方式中,更新模块具体用于:根据第一操作对应的第一配置信息将元素新增至第一目标元素对应的位置下标,并将元素的JSON配置信息新增至第一目标元素的JSON配置信息。或者,根据第一操作对应的第一配置信息将元素从所述第一目标元素对应的位置下标中删除,并将元素的JSON配置信息从第一目标元素的JSON配置信息中删除。
在一种可选的实施方式中,更新模块具体用于:根据第一操作对应的第一配置信息将元素从第二目标元素对应的位置下标移动至第三目标元素对应的位置下标,并更新第二目标元素及第三目标元素的JSON配置信息。
在一种可选的实施方式中,更新模块具体用于:根据第一操作对应的第一配置信息对元素的第四目标元素的JSON配置信息进行修改。
在一种可选的实施方式中,更新模块还用于:查询虚拟节点树,确定虚拟节点树中的至少一个虚拟节点,虚拟节点树为第一应用对应的虚拟节点树,至少一个虚拟节点为通过至少一个第一信息更新后的节点。对至少一个虚拟节点中的第一信息进行渲染。
在一种可选的实施方式中,更新模块还用于:将至少一个第一信息存入历史记录栈。根据历史记录栈中的至少一个第一信息生成至少一个第二信息,第二信息与第一信息一一对应,一个第二信息对应的操作为与第一信息的操作相对应的回滚操作。根据至少一个第二信息对第一应用的编辑进行回滚。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括至少一个处理器以及与至少一个处理器通信连接的存储器。其中,存储器存储有被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行上述第一方面中任一项所述的方法。
第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质存储有计算机程序指令,该计算机程序指令用于执行上述第一方面中任一项所述的方法。
第五方面,本申请实施例还提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述如第一方面的方法以及各个可选项所述的步骤。
第六方面,本申请实施例还提供一种芯片,该芯片包括处理器和接口,所述接口用于与所述处理器通信以及接收来自其他设备的信息;所述处理器用于执行上述第一方面以及第一方面的任一可能实现方式中所述的方法。
附图说明
图1为本申请实施例提供的低代码平台的架构示意图;
图2为本申请实施例提供的应用更新方法的流程示意图;
图3为本申请实施例提供的低代码平台的业务流程示意图;
图4为本申请实施例提供的电子设备的一种结构示意图;
图5为本申请实施例提供的电子设备的另一种结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序、数量或者重要性,而只是用来区分不同的组成部分。例如,“第一目标元素”和“第二目标元素”只是为了表示有两个元素,并不是表示这两个元素的优先级或重要程度等的不同。
此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请中的“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。
为便于理解方案,先对本申请实施例涉及的一些技术概念进行解释。
1)JS对象简谱(JavaScript Object Notation,JSON)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。
JSON Schema用于描述和验证JSON数据格式的工具。
2)diff算法是一种通过同层树节点比较的高效算法。主要用于新旧虚拟DOM树之间的差异,最小化更新视图,目前主流的React、Vue等前端框架均有采用。
3)文档对象模型(document object model,DOM)是用来呈现与任意超文本标记语言HTML文档或可扩展标记语言XML文档交互的应用程序编程接口(applicationprogramming interface,API)。DOM是载入到浏览器中的文档模型,以节点树的形式来表现文档,节点树的每个节点代表文档的构成部分,例如节点可代表文档的页面元素、字符串或注释等。
虚拟DOM本质上是一个JavaScript的对象,是对DOM的抽象,包含要渲染的DOM元素的数据、属性、子节点等信息。
低代码平台支持开发人员通过拖拽式交互的可视化界面,直接参与到软件研发工作中。通常情况下,低代码平台提供用户可视化编辑界面,即编辑器界面。编辑器界面通常被分为多个区域,一部分区域呈现可用组件列表面板,其中包括一些可用于生成应用的组件。一部分区域呈现应用预览面板,其中用于对用户通过拖拽生成的应用进行预览。还有一部分区域呈现属性配置面板,用于对应用组件的属性进行配置。开发过程中,可以将可用组件列表面板中的组件拖拽到中间的展示面板上,通过鼠标的一系列编辑操作即可得到最终的低代码应用。对于通过拖拽生成的低代码平台的应用,低代码平台根据应用的组件自动生成应用的逻辑代码,可以部分或完全替代传统人工编辑应用的代码,降低软件系统研发的技术门槛与人力成本。
目前一般由编辑器维护低代码应用的应用模型,采用schema的形式存储应用模型的信息,当通过编辑器对应用模型进行更新时,编辑器产生的编辑操作会频繁地调用实例对应的方法对应用模型的schema内容进行修改,编辑过程中产生较多冗余和资源消耗。
鉴于此,本申请实施例提供了一种应用更新方法,通过捕捉用户针对第一应用的更新操作,根据更新操作生成至少一个第一信息,更新操作中不同类型的操作对应的第一信息不同。通过至少一个第一信息对第一应用进行更新,使得可以将应用更新过程中的不同编辑操作进行分离,并分别定义不同类型操作对应的数据结构,使得可以根据第一信息分别对第一应用进行更新,以减少更新过程中产生的冗余和资源消耗。
请参见图1,示出本公开实施例提供的低代码平台的架构图。如图1所示,低代码平台包括编辑器、数据存储和出码几项功能。其中,编辑器用于生成和维护低代码应用。编辑器包括页面管理、布局方式、组件库、画布区域、组件配置面板、交互编排、连接器管理、全局变量等功能模块用于对应用进行编辑。其中,页面管理及布局方式功能用于对生成的应用页面进行管理,组件库用于提供内置的默认组件。画布区域用于呈现编辑界面,用户可以在画布区域内对组件进行拖拽式编辑。组件配置面板用于呈现组件的配置。交互编排用于编辑组件关联的交互事件。连接器管理模块用于管理连接器。全局变量模块用于存储低代码应用相关的全局变量。
编辑器还包括渲染器,渲染器用于对编辑器产生的应用数据进行渲染,渲染引擎可以对低代码应用的组件进行实时渲染,并显示在可视化编辑界面中,可渲染显示获得开发用户需求的低代码应用的各前端页面,例如任务台页面、表单页面等。对于编辑器产生的编辑操作,还可以将其存储于操作历史记录中。渲染器还可以对操作历史记录中的应用数据进行渲染,并显示在前端页面中,以实现更新回退。
对于生成的应用模型,低代码平台还可以通过数据存储功能将应用模型转换成JSON配置信息存储到数据库中。进一步地,低代码平台可以根据存储的JSON配置信息生成应用模型对应的源代码及引用模型的依赖插件等。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
请参见图2,示出了本申请实施例提供的应用更新方法的流程示意图。需要说明的是,该方法可应用于具有处理功能的电子设备,例如电子设备为手机、平板电脑(PAD)、个人计算机(PC)等。当然,本发明实施例中的电子设备的类型不限于此。该电子设备上运行了低代码平台,电子设备可以通过低代码平台生成低代码应用。常见的低代码平台包括应用在中后台领域的aPass类平台例如零代码、宜搭类通用型低代码平台等,本申请实施例不作具体限定。
应理解,通过对如图1所示的低代码平台的编辑器的性能进行优化,使得本申请提供的应用更新方法不仅仅局限于对应用进行更新,也可以使用于应用生成等任意对应用进行编辑的场景,本申请实施例对此不作具体限定。
S201、电子设备获取用户针对第一应用的更新操作。
电子设备获取用户针对第一应用的更新操作。更新操作也可以称为编辑操作。用户可以对低代码平台执行更新操作,例如,通过低代码平台的界面进行至少一次点击、拖拽编辑,可以生成用户想要的第一应用,可以将生成的第一应用的版本记为v0。或者说,可以通过低代码平台的界面进行更新操作对生成的第一应用进行更新,编辑器根据用户的点击、拖拽等更新操作对第一应用的应用模型进行更改,生成更新版本的第一应用。更新版本的第一应用记为v1。
在本申请中,可以将更新操作进行类型划分,以便于根据不同的操作重定义低代码平台的数据结构,使得不同类型的操作可以相互分离,优化应用更新过程中的数据结构。更新操作对应的操作类型包括新增、删除、移动或修改。其中,新增操作可以是向第一应用中添加新的元素以使第一应用实现新的功能或对第一应用进行优化。删除操作可以是将第一应用中某些不需要的元素进行删除以对第一应用进行的架构进行精简等。移动操作可以是将第一应用中的某些元素从一个位置移动到另一个位置,或者是将第二应用中的某些元素移动到第一应用,或者是将第一应用中的某些元素移动到第二应用,等等。修改操作可以是基于第一应用目前的元素的配置信息进行修改。应理解,这里对不同类型的操作的解释仅仅是一种示例而非限定,在一些情况下,不同类型的操作所实现的功能或可以达到的效果可以灵活设置。
低代码平台提供丰富的元素种类,包括容器、基础组件、三维组件、视频组件、表单、图表、页面元素等元素内容。其中,容器包括引用容器、卡片容器、轮播容器、面板组容器、弹窗容器等。基础组件包括HTML组件、文本、时间、iframe窗口等。三维组件包括三维空间容器、三维模型等。表单包括schema表单、工作表表单。页面元素包括选项框、输入框、下拉框、文本域、卡片、按钮、弹窗等。
S202、电子设备根据更新操作生成至少一个第一信息。
在本申请实施例中,通过定义操作对应的数据结构,使得可以根据捕捉到的编辑器的更新操作生成至少一个第一信息,通过至少一个第一信息实现对第一应用的更新,可以优化编辑操作的数据结构,提升编辑器的性能。电子设备获取到的更新操作可能包括多个,则对于这多个操作中可能包括至少一种类型的操作,在根据更新操作生成第一信息时,第一信息对应的同一种类型的更新操作的数量不作限定。例如,可以单独一个操作生成一个第一信息,或者,多个同类型的操作生成一个第一信息,本申请实施例不作具体限定。
其中,第一信息包括操作对应的元素及元素对应的第一配置信息。第一配置信息用于更新第一应用的配置。也就是说,对于捕捉到的操作,电子设备可以确定该操作所指向的元素。并确定该元素的第一配置信息,第一配置信息包括用户对该元素进行的操作及该元素的JSON配置信息,使得低代码平台可以根据第一配置信息确定用户对该元素的操作,以对第一应用的配置进行更改。
由于更新操作包括用户在低代码平台界面进行点击、拖拽的操作,电子设备可以确定更新操作在低代码平台的移动轨迹。例如,用户在低代码平台的画布区域执行第一操作,将第一应用所需的元素1从组件库中拖拽至第一应用的应用架构中。电子设备可以根据第一操作的移动轨迹确定第一操作针对的元素1。进一步地,如果用户将元素1添加至第一应用的某个或者多个目标元素下面,电子设备还可以根据第一操作的移动轨迹确定第一操作针对的至少一个目标元素。应理解,目标元素就是元素1的父元素。电子设备可以根据元素1及至少一个目标元素生成第一操作对应的第一配置信息,也就是说,第一操作是针对元素1及至少一个目标元素作出的,相应地,第一配置信息中包括元素及至少一个目标元素的JSON配置信息,低代码平台可以根据第一配置信息确定用户对第一应用进行的局部操作,以对第一应用的配置进行局部更改。
第一配置信息中的JSON配置包括元素类型、属性、样式、交互等信息。其中,元素类型用于指示元素的类型,包括如上所述的容器、基础组件、三维组件、视频组件、表单、图表、页面元素等。属性用于指示元素的属性,包括文字、数字等。样式用于指示元素的图样特征,包括元素图样的高、宽、颜色及边框等。交互用于指示为该元素定义的交互事件,例如,对于弹窗类元素,该元素的交互事件可以为点击、将弹窗页面显示为页面最上层等等。
第一配置信息中还包括元素1在至少一个目标元素中的位置下标。例如,用户同时将元素1拖拽至第一应用的目标元素1、目标元素2及目标元素3下,则第一配置信息中应同时包括元素1在目标元素1、目标元素2及目标元素3中的位置下标。电子设备可以根据这些位置下标对第一应用的应用模型对应位置处进行更改。
另外,由于存在至少一个第一信息,为了便于电子设备进行处理,第一配置信息中还可以包括至少一个第一信息对应的更新操作的类型及操作的顺序。通过更新操作的顺序可以确定至少一个第一信息的顺序,使得更新操作按序执行的情况下,电子设备可以根据至少一个第一信息的顺序依次对第一应用进行更新,可以提高编辑器的处理效率。
下面详细介绍不同操作对应的第一信息。
新增操作。第一信息包括新增操作对应的元素及该元素对应的第一配置信息。新增操作的第一配置信息中包括元素的主要包含新增组件/页面等元素的目标元素的唯一标识、该元素相对于目标元素的位置下标、新增元素的JSON配置信息。
删除操作。第一信息包括删除操作对应的元素及该元素对应的第一配置信息。删除操作的第一配置信息中包括元素的删除组件/页面等元素的唯一标识、删除元素的目标元素唯一标识、该元素相对于目标元素的位置下标、删除元素的JSON配置信息。值得注意的是,删除操作记录元素配置信息,主要用于传递给历史记录栈进行记录,后续撤销操作后恢复被删除元素,渲染器无需感知。
移动操作。第一信息包括移动操作对应的元素及该元素对应的第一配置信息。移动操作的第一配置信息中包括移动组件/页面等元素的唯一标识、移动前的目标元素唯一标识与相对于该目标元素的位置下标、移动后的目标元素唯一标识与相对该目标元素的位置下标。在一些示例中,移动操作也可以由删除操作+新增操作组合而成,但通过删除+新增操作组合成的移动操作可能导致的数据模型与页面DOM操作产生的资源消耗较大。将移动操作单独设置,可以减少资源消耗。
修改操作。第一信息包括修改操作对应的元素及该元素对应的第一配置信息。修改操作的第一配置信息中包括修改组件/页面等元素的唯一标识、元素的JSON配置信息、修改前目标元素对应的JSON配置信息。其中,JSON配置信息可以是目标元素的属性、样式、交互等修改项,以键值对形式存储,包含修改项属性路径与修改属性值。修改前对应JSON配置信息内容相同,修改属性值为修改前的属性值。
具体的,以上操作支持用户进行批量处理,可以定义操作组或操作步骤。操作组或操作步骤的数据结构包含步骤类型、操作集合。步骤类型记录用户操作类型用于提示用户历史操作步骤名称进行操作回滚。操作集合包含至少一个操作。用户的单次编辑最终会以操作步骤的数据结构进行增量信息流转,操作步骤对应的第一信息可以在应用底层生成diff数据,通过diff数据对第一应用进行更新。
S203、电子设备根据至少一个第一信息对第一应用进行更新。
低代码平台的编辑器存储用户编辑好的第一应用的应用模型,如果用户对第一应用进行更新编辑,则对应生成至少一个第一信息,电子设备可以根据至少一个第一信息对第一应用的应用模型进行更改,以实现对第一应用的更新。具体更新过程可以为,电子设备获取第一信息,根据第一信息中的元素对应的第一配置信息确定该第一信息对应的操作的类型。例如,电子设备可以根据第一信息确定对应的操作类型是新增、删除、移动或修改。则针对不同的操作类型的数据结构不同,则电子设备采取不同的方式进行处理。例如,对于新增操作,电子设备可以根据该新增操作的第一配置信息确定将该操作对应的元素添加到应用模型对应的位置处,并根据第一配置信息修改应用模型的配置信息。又例如,对于删除操作,电子设备可以根据该删除操作的第一配置信息确定将该操作对应的元素从应用模型中删除,并根据第一配置信息修改应用模型的配置信息。当然,应用更新过程中涉及应用模型更新、渲染器渲染、历史回滚等,接下来进行详细介绍。
一、应用模型更新
对于应用模型更新过程中的新增操作,电子设备获取第一信息,第一信息包括第一操作对应的元素及该元素对应的第一配置信息。电子设备可以进一步确定该元素对应的第一目标元素的位置下标。例如,第一目标元素作为父元素,其可以包括多个子元素,每个子元素的排序可以通过数组x[n]表示。也就是说,如果存在三个子元素,这样,第一操作可以进一步根据第一信息中的第一配置信息确定用户将该元素添加至第一目标元素的第一位子元素,则该元素在第一目标元素对应的位置下标为x[0],并将该元素添加至对应位置。进一步地,电子设备还可以将该元素对应的JSON配置信息,包括该元素的属性、样式、交互等信息新增至第一目标元素的JSON配置信息,可以实现对该元素的新增操作。
对于应用模型更新过程中的删除操作,电子设备获取第一信息,第一信息包括第一操作对应的元素及该元素对应的第一配置信息。电子设备可以根据第一配置信息找到待删除元素所在的第一目标元素,并根据第一配置信息中待删除元素相对第一目标元素的位置下标定位该元素。电子设备可以将该元素从第一目标元素的位置下标中删除,并将该元素的JSON配置信息从第一目标元素的JSON配置信息中删除,可以实现删除操作。
对于应用模型更新过程中的移动操作,移动操作可以是在应用内部发生的,将应用内部的元素从一处移动到另一处。或者,移动操作可以是应用间发生的,将某一个应用的元素移动到另一应用。则针对移动操作的第一信息,电子设备可以根据第一信息中的第一配置信息确定移动操作涉及的第二目标元素及第三目标元素。第二目标元素即该元素移动前所在的父元素,第三目标元素即该元素移动后所在的父元素。电子设备根据第一操作对应的第一配置信息将元素从第二目标元素对应的位置下标移动至第三目标元素对应的位置下标,并更新第二目标元素及第三目标元素的JSON配置信息,可以实现移动操作。将移动操作单独设置,可以减少资源消耗。
对于应用模型更新过程中的修改操作,由于不涉及元素的移动,可以直接根据第一操作对应的第一配置信息对元素的第四目标元素的JSON配置信息进行修改,也就是,直接修改JSON配置信息。
二、渲染器渲染
渲染器可以对编辑器产生的数据进行实时渲染。DOM是载入到浏览器中的文档模型,以节点树的形式来表现文档,节点树的每个节点代表文档的构成部分。渲染器管理一套针对第一应用的虚拟DOM,也就是虚拟节点树,根据虚拟节点树进行渲染。虚拟节点树中的节点与第一应用模型中的组成部分相对应,当第一应用的应用模型更新时,可以对应修改虚拟节点树,这样渲染器在根据虚拟节点树进行渲染时,渲染出的第一应用为更新后的第一应用。
电子设备可以获取至少一个第一信息,根据至少一个第一信息对虚拟节点树进行更新。具体的,可以根据第一信息顺序递归遍历查询到第一信息对应的虚拟节点实例,调用实例对应的方法对该节点中的信息进行增量更新。应理解,不同操作类型对应不同的实例调用不同的方法。由于只更新虚拟节点,可以采用前端框架使用的diff算法进行差异项更新,以降低浏览器重排重绘次数。
渲染器可以实时查询虚拟节点树,确定虚拟节点树中的至少一个虚拟节点,该至少一个虚拟节点为通过所述至少一个第一信息更新后的节点。也就是说,电子设备可以获取到编辑器产生的至少一个操作后,可以生成至少一个第一信息,并将至少一个第一信息传递给渲染器,渲染器接收到至少一个第一信息后对虚拟节点树进行更新,并对至少一个虚拟节点中的信息进行实时渲染,可以减少渲染器的工作量,提升渲染效率。
三、历史回滚
电子设备将至少一个第一信息存入历史记录栈。在本申请中,至少一个第一信息与至少一个操作对应,且第一信息的第一配置信息中存储了至少一个操作的类型,则电子设备可以基于历史记录栈中的第一信息实现更新回滚。例如,如果第一信息对应的操作为新增操作,第一信息中包括该新增操作对应的元素及元素对应的第一配置信息,则对应的更新回滚操作为删除操作,该删除操作对应的元素及元素对应的第一配置信息与新增操作一致。相当于,更新回滚操作为其针对的操作的“倒置”。
具体的,针对历史记录栈中的至少一个第一信息,电子设备根据至少一个第一信息生成至少一个第二信息,第二信息与第一信息一一对应,一个第二信息对应的操作为与第一信息的操作相对应的回滚操作。对于生成的至少一个第二信息,电子设备可以根据至少一个第二信息对第一应用的编辑进行回滚。电子设备可以将至少一个第二信息发送给编辑器,交由编辑器对至少一个第二信息进行处理,以实现更新回滚。
请参见图3,在本申请实施例中,通过低代码平台生成第一应用并对第一应用进行更新的过程可以如下:编辑器根据预设配置生成初始JSON配置文件,基于初始JSON配置文件构建初始应用模型,渲染器渲染初始应用模型的界面。在对第一应用进行更新时,用户可以在编辑器可视化界面通过拖拽、设置等操作对第一应用进行编辑,根据编辑操作生成增量更新配置数据,即至少一个第一信息。基于增量更新配置数据,进行应用模型的更新,以减少更新过程产生的冗余和资源消耗。此外,还可以基于至少一个第一信息进行渲染器增量渲染,提高动态渲染效率。还可以将至少一个第一信息存储至历史记录栈,进行更新操作的回滚。最终,还可以将应用模型装换为符合规范协议的JSON配置数据,存储至数据库。
请参见图4,基于同一发明构思,本申请提供一种电子设备400。该电子设备400包括:获取模块401、生成模块402及更新模块403。其中,获取模块401用于获取用户针对第一应用的更新操作,更新操作为对第一应用进行编辑的操作。生成模块402用于根据更新操作生成至少一个第一信息,第一信息包括操作针对的元素及元素对应的第一配置信息,第一配置信息用于更新第一应用中元素的配置,不同类型的操作对应的第一信息不同。更新模块403用于根据至少一个第一信息对第一应用进行更新。
在一种可选的实施方式中,生成模块402具体用于:确定更新操作中的第一操作的移动轨迹。根据该移动轨迹确定第一操作针对的元素及至少一个目标元素,至少一个目标元素为元素的父元素。根据元素在至少一个目标元素中的位置下标生成第一操作对应的第一配置信息,第一配置信息还包括元素及至少一个目标元素的JSON配置信息。
在一种可选的实施方式中,更新模块403具体用于:根据第一操作对应的第一配置信息将元素新增至第一目标元素对应的位置下标,并将元素的JSON配置信息新增至第一目标元素的JSON配置信息。或者,根据第一操作对应的第一配置信息将元素从所述第一目标元素对应的位置下标中删除,并将元素的JSON配置信息从第一目标元素的JSON配置信息中删除。
在一种可选的实施方式中,更新模块403具体用于:根据第一操作对应的第一配置信息将元素从第二目标元素对应的位置下标移动至第三目标元素对应的位置下标,并更新第二目标元素及第三目标元素的JSON配置信息。
在一种可选的实施方式中,更新模块具体用于:根据第一操作对应的第一配置信息对元素的第四目标元素的JSON配置信息进行修改。
在一种可选的实施方式中,更新模块403还用于:查询虚拟节点树,确定虚拟节点树中的至少一个虚拟节点,虚拟节点树为第一应用对应的虚拟节点树,至少一个虚拟节点为通过至少一个第一信息更新后的节点。对至少一个虚拟节点中的第一信息进行渲染。
在一种可选的实施方式中,更新模块403还用于:将至少一个第一信息存入历史记录栈。根据历史记录栈中的至少一个第一信息生成至少一个第二信息,第二信息与第一信息一一对应,一个第二信息对应的操作为与第一信息的操作相对应的回滚操作。根据至少一个第二信息对第一应用的编辑进行回滚。
基于同一发明构思,本申请实施例提供了一种电子设备,该电子设备包括至少一个处理器501以及与至少一个处理器通信连接的存储器502。其中,存储器存储有被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行上述任意实施例中的方法。
本申请实施例中不限定处理器501与存储器502之间的具体连接介质,图5中是以处理器501和存储器502之间通过总线500连接为例,总线500在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线500可以分为地址总线、数据总线、控制总线等,为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例中的计算设备还可以包括通信接口503,该通信接口503例如是网口,计算设备可以通过该通信接口503接收数据或者发送数据。
其中,处理器501是计算设备的控制中心,可以利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器502内的指令以及调用存储在存储器502内的数据,计算设备的各种功能和处理数据,从而对计算设备进行整体监控。可选的,处理器501可包括一个或多个处理单元,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。在一些实施例中,处理器501和存储器502可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
可选的,处理器501具体可以是通用处理器,例如中央处理器、特定应用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(英文:Field ProgrammableGate Array,简称:FPGA)开发的硬件电路,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的应用更新方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
通过对处理器501进行设计编程,可以将前述实施例中介绍的应用更新方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述的应用更新方法的步骤,如何对处理器501进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
可选的,在本申请实施例中,存储器502存储有可被至少一个处理器501执行的指令,至少一个处理器501通过执行存储器502存储的指令,可以执行前述的应用更新方法中所包括的步骤。存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器502可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器502是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器502还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。存储器502的数量为一个或多个。其中,存储器502在图5中一并示出,但需要知道的是存储器502不是必选的功能模块,因此在图5中以虚线示出。
基于同一发明构思,本申请实施例提供了一种计算机存储介质,计算机存储介质存储有计算机程序指令,该计算机程序指令用于执行上述任意实施例中的方法。在具体的实施过程中,计算机可读存储介质包括:通用串行总线闪存盘(Universal Serial Busflash drive,USB)、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的存储介质。
在一些可能的实施方式中,本申请提供的应用更新方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算设备上运行时,程序代码用于使该计算设备执行本说明书上述描述的根据本申请各种示例性实施方式的应用更新方法中的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(Universal Serial Bus flash disk)、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种应用更新方法,其特征在于,包括:
获取用户针对第一应用的更新操作,所述更新操作包括至少一种类型的操作;
根据所述更新操作生成至少一个第一信息,所述第一信息包括所述操作针对的元素及所述元素对应的第一配置信息,所述第一配置信息用于更新所述第一应用中元素的配置,不同类型的所述操作对应的所述第一信息不同;
根据所述至少一个第一信息对所述第一应用进行更新。
2.如权利要求1所述的方法,其特征在于,根据所述更新操作生成至少一个第一信息,包括:
确定所述更新操作中的第一操作的移动轨迹;
根据所述移动轨迹确定所述第一操作针对的元素及至少一个目标元素,所述至少一个目标元素为所述元素的父元素;
根据所述元素在所述至少一个目标元素中的位置下标生成所述第一操作对应的第一配置信息,所述第一配置信息还包括所述元素及至少一个目标元素的JSON配置信息。
3.如权利要求2所述的方法,其特征在于,根据所述至少一个第一信息对所述第一应用进行更新,包括:
根据所述第一操作对应的第一配置信息将所述元素新增至第一目标元素对应的位置下标,并将所述元素的JSON配置信息新增至所述第一目标元素的JSON配置信息;或者,
根据所述第一操作对应的第一配置信息将所述元素从所述第一目标元素对应的位置下标中删除,并将所述元素的JSON配置信息从所述第一目标元素的JSON配置信息中删除。
4.如权利要求2所述的方法,其特征在于,根据所述至少一个第一信息对所述第一应用进行更新,包括:
根据所述第一操作对应的第一配置信息将所述元素从第二目标元素对应的位置下标移动至第三目标元素对应的位置下标,并更新所述第二目标元素及第三目标元素的JSON配置信息。
5.如权利要求2所述的方法,其特征在于,根据所述至少一个第一信息对所述第一应用进行更新,包括:
根据所述第一操作对应的第一配置信息对所述元素的第四目标元素的JSON配置信息进行修改。
6.如权利要求1~5任一项所述的方法,其特征在于,所述方法还包括:
查询虚拟节点树,确定所述虚拟节点树中的至少一个虚拟节点,所述虚拟节点树为所述第一应用对应的虚拟节点树,所述至少一个虚拟节点为通过所述至少一个第一信息更新后的节点;
对所述至少一个虚拟节点中的第一信息进行渲染。
7.如权利要求1~5任一项所述的方法,其特征在于,在根据所述至少一个第一信息对所述第一应用进行更新之后,所述方法还包括:
将所述至少一个第一信息存入历史记录栈;
在将所述至少一个第一信息存入历史记录栈之后,所述方法还包括:
根据所述历史记录栈中的所述至少一个第一信息生成至少一个第二信息,所述第二信息与第一信息一一对应,一个第二信息对应的操作为与第一信息的操作相对应的回滚操作;
根据所述至少一个第二信息对所述第一应用的编辑进行回滚。
8.一种电子设备,其特征在于,包括:
获取模块,用于获取用户针对第一应用的更新操作,所述更新操作包括至少一种类型的操作;
生成模块,用于根据所述更新操作生成至少一个第一信息,所述第一信息包括所述操作针对的元素及所述元素对应的第一配置信息,所述第一配置信息用于更新所述第一应用中元素的配置,不同类型的所述操作对应的所述第一信息不同;
更新模块,用于根据所述至少一个第一信息对所述第一应用进行更新。
9.一种电子设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-7任一项所述的方法。
CN202410208955.XA 2024-02-26 2024-02-26 一种应用更新方法、装置及存储介质 Pending CN118034738A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410208955.XA CN118034738A (zh) 2024-02-26 2024-02-26 一种应用更新方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410208955.XA CN118034738A (zh) 2024-02-26 2024-02-26 一种应用更新方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN118034738A true CN118034738A (zh) 2024-05-14

Family

ID=90994768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410208955.XA Pending CN118034738A (zh) 2024-02-26 2024-02-26 一种应用更新方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN118034738A (zh)

Similar Documents

Publication Publication Date Title
US11372947B2 (en) System and method for automatic selection for dynamic site compilation within a cloud-based content hub environment
CN109614424B (zh) 页面布局生成方法、装置、计算设备和介质
CN109408764B (zh) 页面区域划分方法、装置、计算设备和介质
US11763076B2 (en) Document applet generation
TW202141300A (zh) 頁面處理方法、裝置、設備及儲存媒體
CN115617327A (zh) 低代码页面搭建系统、方法及计算机可读存储介质
CN102902545B (zh) 为动画化分解标记语言元素
JP7373563B2 (ja) ウェブサイト構築システム用の構成可能なアプリケーションの作成および処理のためのシステムおよび方法
CN111984902A (zh) 可视化页面配置方法、系统、计算机设备和存储介质
US20050289450A1 (en) User interface virtualization
CN113032708A (zh) 一种无代码Web开发系统
KR20150058237A (ko) 간략화된 지식공학 방법 및 시스템
US7409642B2 (en) Method and system for applying user interface elements to data
CN112138380B (zh) 一种游戏中数据编辑的方法和装置
US11727083B2 (en) System and method for automatic selection for dynamic site compilation within a cloud-based content hub environment
KR101649822B1 (ko) 웹페이지 구축 장치 및 방법
US20240037325A1 (en) Ability to add non-direct ancestor columns in child spreadsheets
CN118034738A (zh) 一种应用更新方法、装置及存储介质
CN114692055A (zh) 表单处理方法、装置、存储介质与电子设备
CN114020358A (zh) 基于iOS应用的界面渲染方法及装置
EP4028910A1 (en) System and method for automatic suggestion and automatic selection for dynamic site compilation within a cloud-based content hub environment
CN115686678B (zh) 一种基于对象的界面信息展示与交互定义系统及方法
CN111949266B (zh) 网页生成方法、装置及电子设备
CN111694723B (zh) 产品在h5下运行时对节点及组件编辑的方法、存储介质
CN118092914A (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