数据存储方法和装置与流程

文档序号:32099992发布日期:2022-11-08 23:33阅读:229来源:国知局
技术简介:
本发明针对应用程序开发平台操作历史易丢失、无法长期存储的问题,提出一种数据存储方法。通过可视化开发页面的代码编辑界面,将代码数据转化为结构化格式,并利用存储线程与索引机制进行高效存储,实现操作记录的持久化管理,避免重复数据冗余,提升存储效率与数据安全性。
关键词:数据存储方法,操作历史存储

1.本发明涉及计算机领域,具体而言,涉及一种数据存储方法和装置。


背景技术:

2.随着企业数字化转型的深入,越来越多的企业从采用传统纯编码开发方式转向采用更高效的开发平台来实现应用类软件的开发。通过采用高效的“低代码快速开发平台”等工具来实现应用类软件开发,相关技术中的应用类软件开发程序在开发过程中,当刷新或关闭浏览器时操作历史容易丢失,容易造成操作历史无法持久化存储的技术问题。此外,当存储当前页面或进行同步化操作时,也会占用较多系统内存,影响到应用程序开发平台的其他操作,造成页面卡顿等情况。
3.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本发明实施例提供了一种数据存储方法和装置,以至少解决应用程序开发平台操作历史易丢失,不能长期存储的技术问题。
5.根据本发明实施例的一个方面,提供了一种数据存储方法,包括:在应用程序开发平台的可视化开发页面中显示代码在线编辑界面;在检测到上述代码在线编辑界面中的代码数据发生编辑变化的情况下,解析上述可视化开发页面的可视化数据结构,并将上述可视化开发页面中的页面数据转化为第一格式数据,其中,上述可视化数据结构用于记录上述可视化开发页面中包括的各个页面组件之间的数据结构;将通过上述代码在线编辑界面获取到的当前操作代码数据转化为上述可视化开发页面的属性数据;根据上述可视化数据结构将上述属性数据与上述可视化开发页面对应的上述第一格式数据进行融合,以得到上述可视化开发页面匹配的页面数据包;通过上述应用程序开发平台的存储线程,将上述页面数据包存储至上述应用程序开发平台的数据库中。
6.根据本发明实施例的另一方面,还提供了一种数据存储装置,包括:显示单元,用于在应用程序开发平台的可视化开发页面中显示代码在线编辑界面;解析单元,用于在检测到上述代码在线编辑界面中的代码数据发生编辑变化的情况下,解析上述可视化开发页面的可视化数据结构,并将上述可视化开发页面中的页面数据转化为第一格式数据,其中,上述可视化数据结构用于记录上述可视化开发页面中包括的各个页面组件之间的数据结构;转换单元,用于将通过上述代码在线编辑界面获取到的当前操作代码数据转化为上述可视化开发页面的属性数据;融合单元,用于根据上述可视化数据结构将上述属性数据与上述可视化开发页面对应的上述第一格式数据进行融合,以得到上述可视化开发页面匹配的页面数据包;存储单元,用于通过上述应用程序开发平台的存储线程,将上述页面数据包存储至上述应用程序开发平台的数据库中。
7.根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述的数
据存储方法。
8.根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的数据存储方法。
9.在本发明实施例中,采用在应用程序开发平台的可视化开发页面中显示代码在线编辑界面;在检测到所述代码在线编辑界面中的代码数据发生编辑变化的情况下,解析所述可视化开发页面的可视化数据结构,并将所述可视化开发页面中的页面数据转化为第一格式数据,其中,所述可视化数据结构用于记录所述可视化开发页面中包括的各个页面组件之间的数据结构;将通过所述代码在线编辑界面获取到的当前操作代码数据转化为所述可视化开发页面的属性数据;根据所述可视化数据结构将所述属性数据与所述可视化开发页面对应的所述第一格式数据进行融合,以得到所述可视化开发页面匹配的页面数据包;通过所述应用程序开发平台的存储线程,将所述页面数据包存储至所述应用程序开发平台的数据库中的方式,通过将获取到的当前操作代码数据转化为可视化开发页面的属性数据;根据可视化数据结构将属性数据与可视化开发页面对应的第一格式数据进行融合,以得到可视化开发页面匹配的页面数据包;通过应用程序开发平台的存储线程,将页面数据包存储至应用程序开发平台的数据库中,达到了实现应用程序开发过程中的操作历史持久化存储的目的,从而实现应用程序开发过程中操作历史持久化存储以及减少系统内存占用率和提高应用程序开发效率的技术效果,进而解决了应用程序开发平台操作历史易丢失,不能长期存储的技术问题。
附图说明
10.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
11.图1是根据本发明实施例的一种可选的数据存储方法的应用环境的示意图;
12.图2是根据本发明实施例的另一种可选的数据存储方法的应用环境的示意图;
13.图3是根据本发明实施例的一种可选的数据存储方法的流程图;
14.图4是根据本发明实施例的一种可选的数据存储方法的可视化页面历史操作界面示意图;
15.图5是根据本发明实施例的一种可选的数据存储方法的开发应用描述模型数据结构示意图;
16.图6是根据本发明实施例的一种可选的数据存储方法的低代码内容历史操作界面示意图;
17.图7是根据本发明实施例的另一种可选的数据存储方法的页面存储的数据结构界面示意图;
18.图8是根据本发明实施例的一种可选的数据存储方法的流程图;
19.图9是根据本发明实施例的另一种可选的数据存储方法的流程图;
20.图10是根据本发明实施例的又一种可选的数据存储方法的流程图;
21.图11是根据本发明实施例的一种可选的数据存储装置的结构示意图;
22.图12是根据本发明实施例的一种可选的电子设备的结构示意图。
具体实施方式
23.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
24.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
25.根据本发明实施例的一个方面,提供了一种数据存储方法,可选地,作为一种可选的实施方式,上述数据存储方法可以但不限于应用于如图1所示的环境中。该应用环境中包括:与用户进行人机交互的终端设备102、网络104、服务器106。用户108与终端设备102之间可以进行人机交互,终端设备102中运行有数据存储应用客户端。上述终端设备102中包括人机交互屏幕1022,处理器1024及存储器1026。人机交互屏幕1022用于呈现代码在线编辑界面中的代码数据,还用于呈现可视化开发页面的属性数据;处理器1024用于在检测到代码在线编辑界面中的代码数据发生编辑变化的情况下,解析可视化开发页面的可视化数据结构,并将可视化开发页面中的页面数据转化为第一格式数据;将通过代码在线编辑界面获取到的当前操作代码数据转化为可视化开发页面的属性数据;根据可视化数据结构将属性数据与可视化开发页面对应的第一格式数据进行融合,以得到可视化开发页面匹配的页面数据包;通过应用程序开发平台的存储线程,将页面数据包存储至应用程序开发平台的数据库中。存储器1026用于存储代码在线编辑界面中的代码数据,还用于存储可视化开发页面的属性数据。
26.此外,服务器106中包括数据库1062及处理引擎1064,数据库1062中用于存储根据可视化数据结构将属性数据与可视化开发页面对应的所述第一格式数据进行融合,得到的可视化开发页面匹配的页面数据包信息。处理引擎1064用于在接收到上述面数据包信息的发送指令后,通过网络104发送上述面数据包。
27.具体过程如以下步骤:假设如图1所示终端设备102中运行有数据存储应用客户端,用户108操作人机交互屏幕1022对数据存储应用客户端进行操作,如步骤s102-s110,在应用程序开发平台的可视化开发页面中显示代码在线编辑界面;在检测到代码在线编辑界面中的代码数据发生编辑变化的情况下,解析可视化开发页面的可视化数据结构,并将可视化开发页面中的页面数据转化为第一格式数据,其中,可视化数据结构用于记录可视化开发页面中包括的各个页面组件之间的数据结构;将通过代码在线编辑界面获取到的当前操作代码数据转化为可视化开发页面的属性数据;根据可视化数据结构将属性数据与可视化开发页面对应的第一格式数据进行融合,以得到可视化开发页面匹配的页面数据包;通过应用程序开发平台的存储线程,将页面数据包存储至应用程序开发平台的数据库中。然
后执行步骤s112,将上述页面数据包通过网络104发送给服务器106。服务器106中的数据库1062存储上述页面数据包后。并如步骤s114,通过网络104通知终端设备102,返回可视化开发页面。
28.作为另一种可选的实施方式,本技术上述数据存储方法可以应用于图2所示的应用环境中。如图2所示,用户202与用户设备204之间可以进行人机交互。用户设备204中包含有存储器206和处理器208。本实施例中用户设备204可以但不限于参考执行上述终端设备102所执行的操作,以获取页面数据包信息。
29.可选地,上述终端设备102和终端设备204可以但不限于为手机、平板电脑、笔记本电脑、pc机等终端,上述网络104可以包括但不限于无线网络或有线网络。其中,该无线网络包括:wifi及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述服务器106可以包括但不限于任何可以进行计算的硬件设备。
30.可选地,作为一种可选的实施方式,如图3所示,上述数据存储方法包括:
31.s302,在应用程序开发平台的可视化开发页面中显示代码在线编辑界面;
32.s304,在检测到上述代码在线编辑界面中的代码数据发生编辑变化的情况下,解析上述可视化开发页面的可视化数据结构,并将上述可视化开发页面中的页面数据转化为第一格式数据,其中,上述可视化数据结构用于记录上述可视化开发页面中包括的各个页面组件之间的数据结构;
33.s306,将通过上述代码在线编辑界面获取到的当前操作代码数据转化为上述可视化开发页面的属性数据;
34.s308,根据上述可视化数据结构将上述属性数据与上述可视化开发页面对应的上述第一格式数据进行融合,以得到上述可视化开发页面匹配的页面数据包;
35.s310,通过上述应用程序开发平台的存储线程,将上述页面数据包存储至上述应用程序开发平台的数据库中。
36.在步骤s302中,实际应用时,应用程序开发平台可以包括但不限于各种可视化的应用开发平台,或者各种可以拖拽组合进行编辑操作编程的应用程序开发平台等,在此不做限定。
37.在步骤s304中,实际应用时,在检测到代码在线编辑界面中的代码数据发生编辑变化的情况下,解析可视化开发页面的可视化数据结构,也就是说,例如当应用程序开发平台中后台服务器检测到编码代码发生变化,将可视化开发页面的可视化数据结构进行解析获取到解析结果,如将当前页面的web容器组件的内容进行变更,从a状态变化到b状态,那么解析结果可以记录为当前web容器的位置和容器内的内容从a变化为b的变化过程。上述仅为实例,本实施例对此不做任何限定。在本实施例中,上述第一格式数据可以为xml格式的数据,json格式数据,yaml格式数据。在此不做任何限定。
38.在步骤s306中,实际应用时,将通过代码在线编辑界面获取到的当前操作代码数据转化为可视化开发页面的属性数据;也就是说,将可视化页面对应的操作代码转换为可视化开发页面对应的属性数据,本实施例中将可视化操作界面和代码编辑相结合的手段来开发应用,这里,属性数据可以包括可视化开发控件的状态信息,参数信息等,在此不做限定。
39.在步骤s308中,实际应用时,在根据可视化数据结构将属性数据与可视化开发页
面对应的第一格式数据进行融合,以得到可视化开发页面匹配的页面数据包;也就是说根据可视化数据结构以及数据结构对应的不同类型的数据,与可视化开发页面中的页面数据对应的第一格式数据进行融合来获取到对应的页面数据包,页面数据包包括第一格式数据和可视化开发页面的多个页面及页面中的参数信息,即页面数据包包含上述二部分内容组成,将上述页面数据包存储到数据库的目录下,进行持久化的存储。
40.在步骤s310中,实际应用时,应用程序开发平台的存储线程,可以为使用webwork工作线程进行存储和读取,不占用用户平台操作的主线程执行显示和其他操作,增加平台流畅度以及更好的体验感。在本发明实施例中,webwork工作进程能够运行开发人员编写能长时间运行而不被用户所中断的后台程序,去执行事务或者逻辑,并同时保证页面对用户的响应。本技术实例中的数据库可以包括但不限于indexeddb,websql等web端大容量的本地存储数据库,便于数据的调用;上述数据库也可以为服务器端的数据库,或者为云数据库等,在此不做任何限定。
41.在本发明实施例中,如图4所示,在应用程序开发平台的可视化开发页面中显示代码在线编辑界面;在检测到代码在线编辑界面400中的代码数据发生编辑变化的情况下,例如页面编辑模块402中的组件或页面配置操作信息发生变化,或代码显示模块404中的关键子key中的lowcode文件中的路径参数发生变化,或关键字key对应的键值value中的代码发生变化时,解析所述可视化开发页面的可视化数据结构,即解析可视化开发页面中的页面或组件,如页面编辑界面404中组件的数据、样式或事件包含的内容,以及解析代码在线编辑界面402中的代码数据,并将上述页面编辑界面404中组件的数据、样式或事件包含的内容转化为第一格式数据,如将面编辑界面404中组件的数据、样式或事件包含的内容,以及组件的类型,组件的id存储到xml格式的文档中;将通过上述代码在线编辑界面获取到的当前操作代码数据转化为上述可视化开发页面的属性数据,如图5所示,上述属性数据包括但不限于不同开发页面下的id,页面组件描述模型数据结构列表componentinstances,data;根据上述可视化数据结构将上述属性数据与上述可视化开发页面对应的上述第一格式数据(如图5中的低代码lowcodes文件)进行融合,以得到上述可视化开发页面匹配的页面数据包,该页面数据包包括但不限于如图5中的页面数据结构文件;通过上述应用程序开发平台的存储线程(如webwork存储线程),将上述页面数据包存储至上述应用程序开发平台的数据库(如图4中的数据库indexeddb)。
42.通过将通过代码在线编辑界面获取到的当前操作代码数据转化为可视化开发页面的属性数据;根据可视化数据结构将属性数据与可视化开发页面对应的第一格式数据进行融合,以得到可视化开发页面匹配的页面数据包;通过应用程序开发平台的存储线程,将页面数据包存储至应用程序开发平台的数据库中,达到了实现应用程序开发过程中的操作历史持久化存储的目的,从而实现应用程序开发中操作历史持久化存储以及减少系统内存占用率和提高应用程序开发效率的技术效果,进而解决了应用程序开发平台操作历史易丢失,不能长期存储的技术问题。
43.在一实施例中,步骤s310包括:将上述页面数据包发送至上述存储线程,其中,上述存储线程是为上述应用程序开发平台的开发主线程配置的子线程;通过上述存储线程为上述页面数据包生成存储索引,并将上述存储索引和对应的上述页面数据包存储至上述数据库中,其中,上述存储索引用于唯一识别上述页面数据包。在本实施例中,可以通过不同
的存储线程进行存储不同开发主线程配置的子线程下对应的页面数据。可以通过上述存储线程为页面数据生成key-value型数据存储模式。这里,key可以为上述存储线程对应的键值,value可以为上述存储线程对应的页面数据包。
44.在一实施例中,上述通过上述存储线程为上述页面数据包生成存储索引,并将上述存储索引和对应的上述页面数据包存储至上述本地存储数据库中包括:从上述数据库中读取历史操作代码数据;通过上述存储线程比对上述历史操作代码数据和上述属性数据中的上述当前操作代码数据;在上述历史操作代码数据和上述当前操作代码数据相同的情况下,丢弃上述当前操作代码数据;在上述历史操作代码数据和上述当前操作代码数据不同的情况下,为上述页面数据包中的上述第一格式数据生成第一存储索引,并为上述页面数据包中的上述属性数据生成第二存储索引;将上述第一格式数据和上述第一存储索引存储到上述数据库中第一地址,并将上述属性数据和上述第二存储索引存储到上述数据库中的第二地址。
45.在本实施例中,从本地的数据库中读到历史操作代码数据后,通过比对历史操作代码数据与当前操作代码数据的差异,当前操作代码数据与历史操作代码数据相同时,仅保留历史操作代码数据。当当前操作代码数据与历史操作代码数据不同时,将第一格式的数据存储到数据库中与属性数据不同的位置。
46.在一实施例中,上述将上述属性数据和上述第二存储索引存储到上述数据库中的第二地址包括:确定上述历史操作代码数据在上述数据库中的当前历史指针;将上述当前历史指针进行加1处理,以得到上述第二地址对应的地址指针。在本实施例中,可以通过当前历史指针的变更,来更新当前指针对应的当前操作数据对应的目标地址。
47.在一实施例中,在上述为上述页面数据包中的上述第一格式数据生成第一存储索引,并为上述页面数据包中的上述属性数据生成第二存储索引之后,还包括:对上述数据库中已存储的历史页面数据包的条目数量进行加一处理,得到更新后的条目数量;在上述更新后的条目数量尚未达到上述数据库中存储条目的最大值时,确定将上述第一格式数据和上述第一存储索引存储到上述数据库中第一地址,并将上述属性数据和上述第二存储索引存储到上述数据库中的第二地址。在本实施例中,也就是说,可以根据数据库存储量的大小来设定存储页面数据包的条目数量的最大值,当更新后的条目数据为达到本地数据中存储条目的最大值时,可以存储当前第一格式的数据和上述属性数据。
48.在一实施例中,上述通过上述存储线程为上述页面数据包生成存储索引,并将上述存储索引和对应的上述页面数据包存储至上述数据库中包括:在上述编辑变化指示上述代码在线编辑界面中的代码数据是撤销变化的情况下,确定上述属性数据中被撤销修改的上述当前操作代码数据对应的第一地址指针;将上述当前操作代码数据存储至上述本地存储数据库,并将第一地址指针进行减一处理。通过上述技术手段,可以实现在应用程序开发平台中的数据撤销操作,提高了应用程序开发的效率。
49.在一实施例中,上述通过上述存储线程为上述页面数据包生成存储索引,并将上述存储索引和对应的上述页面数据包存储至上述数据库中包括:在上述编辑变化指示上述代码在线编辑界面中的代码数据是重做变化的情况下,确定上述属性数据中被重做的上述当前操作代码数据对应的第二地址指针,其中,上述第二地址指针是对重做前最新历史地址指针进行加一处理后的地址指针。通过上述技术手段,可以实现在应用程序开发平台中
的数据重做操作,提高了应用程序开发的效率。
50.在一实施例中,上述第一格式数据包括以下至少之一:json格式数据,xml格式数据,yaml格式数据。在本发明实施例中,通过上述不同的存储格式,可以将可视化编程界面产生的数据进行有持久化的文件存储。
51.在本发明实施例中,采用在应用程序开发平台的可视化开发页面中显示代码在线编辑界面;在检测到所述代码在线编辑界面中的代码数据发生编辑变化的情况下,解析所述可视化开发页面的可视化数据结构,并将所述可视化开发页面中的页面数据转化为第一格式数据,其中,所述可视化数据结构用于记录所述可视化开发页面中包括的各个页面组件之间的数据结构;将通过所述代码在线编辑界面获取到的当前操作代码数据转化为所述可视化开发页面的属性数据;根据所述可视化数据结构将所述属性数据与所述可视化开发页面对应的所述第一格式数据进行融合,以得到所述可视化开发页面匹配的页面数据包;通过所述应用程序开发平台的存储线程,将所述页面数据包存储至所述应用程序开发平台的数据库中的方式,通过将获取到的当前操作代码数据转化为可视化开发页面的属性数据;根据可视化数据结构将属性数据与可视化开发页面对应的第一格式数据进行融合,以得到可视化开发页面匹配的页面数据包;通过应用程序开发平台的存储线程,将页面数据包存储至应用程序开发平台的数据库中,达到了实现应用程序开发过程中的操作历史持久化存储的目的,从而实现应用程序开发中操作历史持久化存储以及减少系统内存占用率和提高应用程序开发效率的技术效果,进而解决了应用程序开发平台操作历史易丢失,不能长期存储的技术问题。
52.基于上述实施例,在一应用实施例中提供的数据存储方法中,如图4所示,应用程序开发平台为低代码开发平台,在低代码开发平台中,应用开发的过程中使用对应的描述模型如json或者xml或者其他自定义的描述格式来记录上述操作历史,通过将开发页面,全局配置,低代码文件作为不同的属性内容进行拆分存储;例如对应开发页面部分修改操作,只需要存储开发页面的部分描述(即对有修改的部分的变化属性进行存储),对于撤销和重做等操作,只需要读取对于存储的描述页面数据的json或者xml文件,通过将上述json或者xml文件进行页面重新解析,可以将开发页面的操作历史,显示在代码在线编辑界面400中;当进行全局配置时,低代码文件可以将操作历史通过不同的文件和配置信息分别进行存储。
53.如图5所示,上述低代码开发平台的开发应用描述模型数据结构如下,开发应用描述模型数据结构如下:
54.pageinstancelist:业务开发的页面描述数据结构列表,内部包含页面实例描述数据结构page1,page2,page3等不同的页面数据结构。
55.page1(page2/page3):页面实例有页面id(唯一),数据(data),页面组件列表(componentinstances);
56.componentinstances:页面组件描述模型数据结构列表,由组件component(component1,component2,component3)组成。
57.component:页面组件实例数据结构,内含有xindex(组件层级),xcomponent(依赖的子组件),xprops(组件属性)。
58.lowcodes:低代码文件管理模型列表,内部包含低代码文件实例file1,文件实例
file2。
59.file(file1/file2):低代码文件实例数据结构,包含路径path,代码内容(code)。
60.appconfig:应用全局配置文件。
61.基于上述实施例,在一应用实施例中提供的数据存储方法中,在如图4所示,代码显示模块404中key-value数据库模型中,存储有上述lowcodes低代码文件。上述低代码文件可以通过如图6所示的代码编辑界面进行低代码文件的编辑和修改。图6中,当前选中编辑的低代码文件名称为state|global,在代码编辑模块602中,可以将当前应用的名称和变量进行赋值,然后可以通过保存按键604进行保存。
62.基于上述实施例,在一应用实施例中提供的数据存储方法中,在图4中创建的当前页面example包含的数据结构可以用如图7中的结构图来体现,如图7所示,页面example包括页面描述数据结构,在页面描述数据结构中包括页面的id,页面组件描述模型数据结构componentinstances,其包含组件component,页面组件中包含组件层级xindex,依赖的子组件xcomponent,组件属性xprops。在低代码文件管理模型lowcodes中包括代码内容code和文件路径path。
63.上述页面example对应的数据结构的代码如下所示:
64.[0065][0066]
从上述代码中可以看出,页面example包括页面的id为“example”,页面组件中包含组件层级xindex的层级为2。在低代码文件管理模型lowcodes中包括代码内容“\n@primary-color:bulue;”和文件路径“global/theme”。基于上述实施例,在一实施例中,上述数据存储方法包括:
[0067]
1.平台使用人员用过新建应用生成应用id,在可视化页面上进行开发操作,以及在低代码在线编辑器上进行代码编辑
[0068]
2.操作历史触发processhistory(历史进程),每300ms执行一次,在可视化页面上,页面解析可视化结构抽象化成json或者xml等数据描述结构的数据,使用web worker传送给history存储的线程操作,通过上述技术手段可以节约web低代码平台主线程资源,增加低代码平台体验优化,渲染性能提升。
[0069]
3.history存储线程对比当前current的数据,如果和上次相同就丢弃不处理,不相同则根据使用应用id+页面id或者文件path+用户名称+cur生成key,使用localstorage存储当前历史指针位置cur+1,以及历史最新一条记录newest+1,以及是否存储满最大条目数fullmax。
[0070]
4.使用indexeddb,websql等web端大容量存储方式使用key-value方式存储,并继续监听下次操作通过key获取indexeddb,websql等web端大容量存储的value。本发明实施
例为大容量存储使用在低代码开发平台,可增加线上和线下开发的一致性体验,为线下开发转线上极大提升效率和体验。
[0071]
在一实施例中,上述数据存储方法中:撤销以及重做操作流程如下:
[0072]
1.判断撤销和重做操作是否可继续执行。
[0073]
2.判断当前浏览器展示页面或者选中文件的数据结构和当前存储的所在cur位置的数据结构是否一致,如果不一致,则使用存储流程将当前页面或者选中文件进行存储一次,如果一致,则继续下步操作。
[0074]
3.可操作时将撤销cur置为cur-1,重做将cur置为cur+1。
[0075]
4.通过根据使用应用id+页面id或者文件path+用户名称+cur生成key。
[0076]
5.页面部分:获取value反解析成可视化操作页面。低代码部分:获取value替换对应的代码文件内容。
[0077]
基于上述实施例,在一实施例中,如图8所示,上述数据存储方法包括如下步骤:步骤s802,新建应用;步骤s804,可视化页面开发操作;步骤s806,低代码在线编辑器开发低代码文件。步骤s808,用户在正常使用平台进程开发页面的添加,修改,删除组件等操作。步骤s810,触发操作历史,步骤s812,基于操作历史进行开发操作。
[0078]
基于上述实施例,在一实施例中,如图9所示,上述数据存储方法包括:步骤s902,进行开发操作;步骤s904,用户正常使用平台进行开发页面的添加,修改和删除组件等操作;步骤s906,查询操作历史;步骤s908,页面变动,触发页面周期进行更新;步骤s910,触发processhistory(节流函数throttle的时间默认为300ms),也就是说在300ms内会触发历史进程processhistory;步骤s912,抽象化页面数据结构或者获取代码编辑器代码内容,将可视化页面结构抽象为json或xml等描述数据;步骤s914,使用webworker传输描述数据到history.webwork,将描述数据存储到数据库。步骤s916,判断描述数据是否符合预设的格式要求;步骤s918,当不符合预设的格式要求时,对当前的描述数据进行丢弃不处理;步骤s920,对比当前current数据,数据相同时转入步骤s918;步骤s922,使用webworker内部处理逻辑,使用localstorage存储当前历史指针位置cur+1,以及历史最新一条记录newest+1,以及是否存储满最大条目fullmax最大值。步骤s924,存储最大条目max=150,如果fullmax已满,cur+1》fullmax时,将cur=1;步骤s926,根据使用应用id+页面id或者文件path+用户名称+cur生成key,使用数据+操作时间生成value;步骤s928,使用indexeddb,websql等web端大容量存储方式存储key-value数据。步骤s930,继续监听下次存储。
[0079]
基于上述实施例,在一实施例中,如图10所示,上述数据存储方法包括:步骤s1002,进行开发操作,步骤s1004,进行撤销操作;步骤s1004a,使用webwork进行读取页面结构化数据结构的存储内容;步骤s1004b,向history.webwork传输undo消息;步骤s1004c,查找当前cur指针指向的存储内容和当前展示内容是否一致;当不一致时,转入步骤s1008,调用存储逻辑先将当前数据存储。当前cur指针指向的存储内容和当前展示内容一致时,转入步骤s1004d,进行丢弃(haspast)处理;步骤s1004e,指针cur设置为cur-1;步骤s1010,变动的指针cur重新指向本地历史的内容;步骤s1006,进行重做操作;步骤s1006a,使用webwork进行读取当前选中文件低代码的存储内容;步骤s1006b,向history.webwork传输redo消息;步骤s1006c,查找当前cur指针指向的存储内容和当前展示内容是否一致;当不一致时,转入步骤s1008,调用存储逻辑先将当前数据存储。当前cur指针指向的存储内容和
当前展示内容一致时,转入步骤s1006d,进行haspast处理;步骤s1006e,指针cur设置为cur+1;步骤s1010,变动的指针cur重新指向本地历史的内容;步骤s1012,根据使用应用id+页面id或者文件path+用户名称+cur生成key;步骤s1014,通过key获取indexeddb,websql等web端大容量存储的value;步骤s1016,获取value反解析成可视化操作页面;步骤s1018,获取value替换对应的代码文件内容。
[0080]
在本发明实施例中,采用在应用程序开发平台的可视化开发页面中显示代码在线编辑界面;在检测到上述代码在线编辑界面中的代码数据发生编辑变化的情况下,解析上述可视化开发页面的可视化数据结构,并将上述可视化开发页面中的页面数据转化为第一格式数据,其中,上述可视化数据结构用于记录上述可视化开发页面中包括的各个页面组件之间的数据结构;将通过上述代码在线编辑界面获取到的当前操作代码数据转化为上述可视化开发页面的属性数据;根据上述可视化数据结构将上述属性数据与上述可视化开发页面对应的上述第一格式数据进行融合,以得到上述可视化开发页面匹配的页面数据包;通过上述应用程序开发平台的存储线程,将上述页面数据包存储至上述应用程序开发平台的数据库中的方式,通过将获取到的当前操作代码数据转化为可视化开发页面的属性数据;根据可视化数据结构将属性数据与可视化开发页面对应的第一格式数据进行融合,以得到可视化开发页面匹配的页面数据包;通过应用程序开发平台的存储线程,将页面数据包存储至应用程序开发平台的数据库中,达到了实现应用程序开发过程中的操作历史持久化存储的目的,从而实现应用程序开发中操作历史持久化存储以及减少系统内存占用率和提高应用程序开发效率的技术效果,进而解决了应用程序开发平台操作历史易丢失,不能长期存储的技术问题。
[0081]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0082]
根据本发明实施例的另一个方面,还提供了一种用于实施上述数据存储方法的数据存储装置。如图11所示,该装置包括:
[0083]
显示单元1102,用于在应用程序开发平台的可视化开发页面中显示代码在线编辑界面;
[0084]
解析单元1104,用于在检测到上述代码在线编辑界面中的代码数据发生编辑变化的情况下,解析上述可视化开发页面的可视化数据结构,并将上述可视化开发页面中的页面数据转化为第一格式数据,其中,上述可视化数据结构用于记录上述可视化开发页面中包括的各个页面组件之间的数据结构;
[0085]
转换单元1106,用于将通过上述代码在线编辑界面获取到的当前操作代码数据转化为上述可视化开发页面的属性数据;
[0086]
融合单元1108,用于根据上述可视化数据结构将上述属性数据与上述可视化开发页面对应的上述第一格式数据进行融合,以得到上述可视化开发页面匹配的页面数据包;
[0087]
存储单元1110,用于通过上述应用程序开发平台的存储线程,将上述页面数据包存储至上述应用程序开发平台的数据库中。
[0088]
在在本发明实施例中,应用程序开发平台可以包括但不限于各种可视化的应用开发平台,或者各种可以拖拽组合进行编辑操作编程的应用程序开发平台等,在此不做限定。
[0089]
在本发明实施例中,在检测到代码在线编辑界面中的代码数据发生编辑变化的情况下,解析可视化开发页面的可视化数据结构,也就是说,例如当应用程序开发平台中后台服务器检测到编码代码发生变化,将可视化开发页面的可视化数据结构进行解析获取到解析结果,如将当前页面的web容器组件的内容进行变更,从a状态变化到b状态,那么解析结果可以记录为当前web容器的位置和容器内的内容从a变化为b的变化过程。上述仅为实例,本实施例对此不做任何限定。在本实施例中,上述第一格式数据可以为xml格式的数据,json格式数据,yaml格式数据。在此不做任何限定。
[0090]
在本发明实施例中,将通过代码在线编辑界面获取到的当前操作代码数据转化为可视化开发页面的属性数据;也就是说,将可视化页面对应的操作代码转换为可视化开发页面对应的属性数据,在本实施例中,属性数据可以包括可视化开发控件的状态信息,参数信息等,在此不做限定。
[0091]
在本发明实施例中,在根据可视化数据结构将属性数据与可视化开发页面对应的第一格式数据进行融合,以得到可视化开发页面匹配的页面数据包;也就是说根据可视化数据的数据结构以及数据结构对应的不同类型的数据,与可视化开发页面对应的第一格式来获取到对应的页面数据包进行融合到本地数据的目录下,进行持久化的存储。
[0092]
在本发明实施例中,应用程序开发平台的存储线程,可以为使用webwork工作线程进行存储和读取,不占用用户平台操作的主线程执行显示和其他操作,增加平台流畅度以及更好的体验感。在本发明实施例中,webwork工作进程能够运行开发人员编写能长时间运行而不被用户所中断的后台程序,去执行事务或者逻辑,并同时保证页面对用户的响应。数据库可以包括但不限于indexeddb,websql等web端大容量存储数据库。
[0093]
在一实施例中,上述存储单元1110包括:发送模块,用于将上述页面数据包发送至上述存储线程,其中,上述存储线程是为上述应用程序开发平台的开发主线程配置的子线程;
[0094]
存储模块,用于通过上述存储线程为上述页面数据包生成存储索引,并将上述存储索引和对应的上述页面数据包存储至上述本地存储数据库中,其中,上述存储索引用于唯一识别上述页面数据包。
[0095]
在本发明实施例中,采用在应用程序开发平台的可视化开发页面中显示代码在线编辑界面;在检测到上述代码在线编辑界面中的代码数据发生编辑变化的情况下,解析上述可视化开发页面的可视化数据结构,并将上述可视化开发页面中的页面数据转化为第一格式数据,其中,上述可视化数据结构用于记录上述可视化开发页面中包括的各个页面组件之间的数据结构;将通过上述代码在线编辑界面获取到的当前操作代码数据转化为上述可视化开发页面的属性数据;根据上述可视化数据结构将上述属性数据与上述可视化开发页面对应的上述第一格式数据进行融合,以得到上述可视化开发页面匹配的页面数据包;通过上述应用程序开发平台的存储线程,将上述页面数据包存储至上述应用程序开发平台的数据库中的方式,通过将获取到的当前操作代码数据转化为可视化开发页面的属性数据;根据可视化数据结构将属性数据与可视化开发页面对应的第一格式数据进行融合,以得到可视化开发页面匹配的页面数据包;通过应用程序开发平台的存储线程,将页面数据
包存储至应用程序开发平台的数据库中,达到了实现应用程序开发过程中的操作历史持久化存储的目的,从而实现应用程序开发中操作历史持久化存储以及减少系统内存占用率和提高应用程序开发效率的技术效果,进而解决了应用程序开发平台操作历史易丢失,不能长期存储的技术问题。
[0096]
根据本发明实施例的又一个方面,还提供了一种用于实施上述数据存储方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为客户端为例来说明。如图12所示,该电子设备包括存储器1202和处理器1204,该存储器1202中存储有计算机程序,该处理器1204被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
[0097]
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
[0098]
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0099]
s1,在应用程序开发平台的可视化开发页面中显示代码在线编辑界面;
[0100]
s2,在检测到代码在线编辑界面中的代码数据发生编辑变化的情况下,解析可视化开发页面的可视化数据结构,并将可视化开发页面中的页面数据转化为第一格式数据,其中,可视化数据结构用于记录可视化开发页面中包括的各个页面组件之间的数据结构;
[0101]
s3,将通过代码在线编辑界面获取到的当前操作代码数据转化为可视化开发页面的属性数据;
[0102]
s4,根据可视化数据结构将属性数据与可视化开发页面对应的第一格式数据进行融合,以得到可视化开发页面匹配的页面数据包;
[0103]
s5,通过应用程序开发平台的存储线程,将页面数据包存储至应用程序开发平台的数据库中。
[0104]
可选地,本领域普通技术人员可以理解,图12所示的结构仅为示意,电子装置电子设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图12其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图12中所示更多或者更少的组件(如网络接口等),或者具有与图12所示不同的配置。
[0105]
其中,存储器1202可用于存储软件程序以及模块,如本发明实施例中的数据存储方法和装置对应的程序指令/模块,处理器1204通过运行存储在存储器1202内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据存储方法。存储器1202可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1202可进一步包括相对于处理器1204远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1202具体可以但不限于用于存储可视化数据结构、可视化开发页面的属性数据和页面数据包等信息。作为一种示例,如图12所示,上述存储器1202中可以但不限于包括上述数据存储装置中的显示单元1102、解析单元1104、转换单元1106、融合单元1108及存储单元1110。此外,还可以包括但不限于上述数据存储装置中的其他模块单元,本示例中不再赘述。
[0106]
可选地,上述的传输装置1206用于经由一个网络接收或者发送数据。上述的网络
具体实例可包括有线网络及无线网络。在一个实例中,传输装置1206包括一个网络适配器(network interface controller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1206为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
[0107]
此外,上述电子设备还包括:显示器1208,用于显示上述可视化开发页面的属性数据和页面数据包信息;和连接总线1210,用于连接上述电子设备中的各个模块部件。
[0108]
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peer to peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
[0109]
根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述数据存储方法。其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0110]
可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0111]
s1,在应用程序开发平台的可视化开发页面中显示代码在线编辑界面;
[0112]
s2,在检测到代码在线编辑界面中的代码数据发生编辑变化的情况下,解析可视化开发页面的可视化数据结构,并将可视化开发页面中的页面数据转化为第一格式数据,其中,可视化数据结构用于记录可视化开发页面中包括的各个页面组件之间的数据结构;
[0113]
s3,将通过代码在线编辑界面获取到的当前操作代码数据转化为可视化开发页面的属性数据;
[0114]
s4,根据可视化数据结构将属性数据与可视化开发页面对应的第一格式数据进行融合,以得到可视化开发页面匹配的页面数据包;
[0115]
s5,通过应用程序开发平台的存储线程,将页面数据包存储至应用程序开发平台的数据库中。
[0116]
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
[0117]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0118]
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
[0119]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0120]
在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0121]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0122]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0123]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!