CN113065317A - 编辑内容的恢复方法、装置、电子设备、介质及产品 - Google Patents

编辑内容的恢复方法、装置、电子设备、介质及产品 Download PDF

Info

Publication number
CN113065317A
CN113065317A CN202110291001.6A CN202110291001A CN113065317A CN 113065317 A CN113065317 A CN 113065317A CN 202110291001 A CN202110291001 A CN 202110291001A CN 113065317 A CN113065317 A CN 113065317A
Authority
CN
China
Prior art keywords
editing
state tree
difference data
data
user interaction
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.)
Granted
Application number
CN202110291001.6A
Other languages
English (en)
Other versions
CN113065317B (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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202110291001.6A priority Critical patent/CN113065317B/zh
Publication of CN113065317A publication Critical patent/CN113065317A/zh
Application granted granted Critical
Publication of CN113065317B publication Critical patent/CN113065317B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开提供了编辑内容的恢复方法、装置、电子设备、介质及产品,获得针对用户交互界面展示的编辑内容的恢复操作,确定所述恢复操作所属操作类型对应的数据集合,所述数据集合包括一个或多个差异数据,所述差异数据是响应编辑操作前后所述编辑内容分别对应的状态树的差异,所述编辑操作是针对所述编辑内容的编辑操作。从所述数据集合中获得距离当前时间最近的至少一个差异数据,所述至少一个差异数据的数目与所述恢复操作对应的恢复次数相同。基于所述至少一个差异数据更新所述第一状态树,以得到第二状态树,在所述用户交互界面中显示所述第二状态树对应的编辑内容,从而实现了恢复用户交互界面展示的编辑内容的目的。

Description

编辑内容的恢复方法、装置、电子设备、介质及产品
技术领域
本公开涉及数据处理技术领域,尤其涉及编辑内容的恢复方法、装置、电子设备、介质及产品。
背景技术
用户可以基于电子设备编辑文档、图片、视频、表格、页面等内容。用户在编辑上述内容的过程中,可能出现操作失误的情况,例如,错误设置字体颜色、错误删除图片、错误删除页面等,此时需进行撤销操作或回退操作。
如何实现撤销操作或回退操作是本领域技术人员需要解决的难题。
发明内容
本公开提供一种编辑内容的恢复方法、装置、电子设备及介质,以至少解决相关技术中不能实现撤销操作或回退操作的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种编辑内容的恢复方法,包括:
获取针对用户交互界面展示的编辑内容的恢复操作,所述编辑内容对应第一状态树,所述编辑内容是基于所述第一状态树展示在所述用户交互界面上的;
确定所述恢复操作所属操作类型对应的数据集合,所述数据集合包括一个或多个差异数据,所述差异数据是响应编辑操作前后所述编辑内容分别对应的状态树的差异,所述编辑操作是针对所述编辑内容的编辑操作;
从所述数据集合中获得距离当前时间最近的至少一个差异数据,所述至少一个差异数据的数目与所述恢复操作对应的恢复次数相同;
基于所述至少一个差异数据更新所述第一状态树,以得到第二状态树;
在所述用户交互界面中显示所述第二状态树对应的编辑内容。
结合第一方面,在第一种可能实现方式中,所述操作类型包括撤销操作类型或回退操作类型,获取所述操作类型对应的数据集合步骤包括:
获得深拷贝数据,所述深拷贝数据为第三状态树的深拷贝数据,所述第三状态树为前一次响应所述编辑操作后所述编辑内容对应的状态树;
接收针对所述编辑内容的编辑操作;
响应所述编辑操作,更新所述第三状态树,以得到第四状态树;
获得所述第四状态树与所述深拷贝数据的差异数据;
确定所述编辑操作对应的操作类型;
存储所述差异数据至所述操作类型对应的数据集合;
返回所述获得深拷贝数据步骤。
结合第一方面,在第二种可能实现方式中,所述编辑操作对应操作类型为所述撤销操作类型,还包括:
检测差异数据获取指令;
若检测到所述差异数据获取指令,执行所述获得所述第四状态树与所述深拷贝数据的差异数据步骤。
结合第一方面,在第三种可能实现方式中,所述存储所述差异数据至所述操作类型对应的数据集合步骤包括:
若所述操作类型对应的数据集合已经存储的差异数据的数目等于预设记录步数,删除所述数据集合中存储时间最早的差异数据;
存储所述第四状态树与所述深拷贝数据的差异数据至所述操作类型对应的数据集合。
结合第一方面,在第四种可能实现方式中,还包括:
所述获得所述第四状态树与所述深拷贝数据的差异数据步骤包括:
将所述深拷贝数据与所述第四状态树分别转换成对象简谱格式;
比较对象简谱格式的所述深拷贝数据与对象简谱格式的所述第四状态树,得到所述差异数据。
结合第一方面,在第五种可能实现方式中,所述检测差异数据获取指令步骤包括:
若检测到预设信息,确定检测到所述差异数据获取指令;所述预设信息包括:所述编辑内容对应的状态树发生变更、间隔预设时长、预设手势、预设按键被触按、预设触按轨迹中的至少一个。
结合第一方面,在第六种可能实现方式中,还包括:
获取所述用户交互界面展示的至少一个候选编辑对象;
从所述至少一个候选编辑对象中筛选出预设的至少一个编辑对象;
获取所述用户交互界面展示的所述至少一个编辑对象的至少一个属性特征,以得到所述第一状态树。
结合第一方面,在第七种可能实现方式中,所述获取所述用户交互界面展示的所述至少一个编辑对象的至少一个属性特征步骤包括:
获取所述用户交互界面展示的所述至少一个编辑对象的至少一个候选属性特征;
从所述至少一个编辑对象对应的至少一个候选属性特征中,筛选出所述至少一个编辑对象对应的预设的至少一个属性特征。
根据本公开实施例的第二方面,提供一种编辑内容的恢复装置,包括:
第一获取模块,被配置为获取针对用户交互界面展示的编辑内容的恢复操作,所述编辑内容对应第一状态树,所述编辑内容是基于所述第一状态树展示在所述用户交互界面上的;
第一确定模块,被配置为确定所述恢复操作所属操作类型对应的数据集合,所述数据集合包括一个或多个差异数据,所述差异数据是响应编辑操作前后所述编辑内容分别对应的状态树的差异,所述编辑操作是针对所述编辑内容的编辑操作;
第二获取模块,被配置为从所述数据集合中获得距离当前时间最近的至少一个差异数据,所述至少一个差异数据的数目与所述恢复操作对应的恢复次数相同;
第一更新模块,被配置为基于所述至少一个差异数据更新所述第一状态树,以得到第二状态树;
显示模块,被配置为在所述用户交互界面中显示所述第二状态树对应的编辑内容。
结合第二方面,在第一种可能实现方式中,所述操作类型包括撤销操作类型或回退操作类型,还包括:
第三获取模块,被配置为获得深拷贝数据,所述深拷贝数据为第三状态树的深拷贝数据,所述第三状态树为前一次响应所述编辑操作后所述编辑内容对应的状态树;
接收模块,被配置为接收针对所述编辑内容的编辑操作;
第二更新模块,被配置为响应所述编辑操作,更新所述第三状态树,以得到第四状态树;
第四获取模块,被配置为获得所述第四状态树与所述深拷贝数据的差异数据;
第二确定模块,被配置为确定所述编辑操作对应的操作类型;
存储模块,被配置为存储所述差异数据至所述操作类型对应的数据集合。
结合第二方面,在第二种可能实现方式中,所述编辑操作对应的操作类型为所述撤销操作类型,还包括:
检测模块,被配置为检测差异数据获取指令;
触发模块,被配置为若检测到所述差异数据获取指令,触发所述第四获取模块。
结合第二方面,在第三种可能实现方式中,所述存储模块具体被配置为:
删除单元,被配置为若所述操作类型对应的数据集合已经存储的差异数据的数目等于预设记录步数,删除所述数据集合中存储时间最早的差异数据;
存储单元,被配置为存储所述第四状态树与所述深拷贝数据的差异数据至所述操作类型对应的数据集合。
结合第二方面,在第四种可能实现方式中,所述第四获取模块具体被配置为:
转换格式单元,被配置为将所述深拷贝数据与所述第四状态树分别转换成对象简谱格式;
第一获取单元,被配置为比较对象简谱格式的所述深拷贝数据与对象简谱格式的所述第四状态树,得到所述差异数据。
结合第二方面,在第五种可能实现方式中,所述检测模块具体被配置为:
第三确定模块,被配置为若检测到预设信息,确定检测到所述差异数据获取指令;所述预设信息包括:所述编辑内容对应的状态树发生变更、间隔预设时长、预设手势、预设按键被触按、预设触按轨迹中的至少一个。
结合第二方面,在第六种可能实现方式中,还包括:
第五获取模块,被配置为获取所述用户交互界面展示的至少一个候选编辑对象;
筛选模块,被配置为从所述至少一个候选编辑对象中筛选出预设的至少一个编辑对象;
第六获取模块,被配置为获取所述用户交互界面展示的所述至少一个编辑对象的至少一个属性特征,以得到所述第一状态树。
结合第二方面,在第七种可能实现方式中,所述第六获取模块具体被配置为:
第二获取单元,被配置为获取所述用户交互界面展示的所述至少一个编辑对象的至少一个候选属性特征;
筛选单元,被配置为从所述至少一个编辑对象对应的至少一个候选属性特征中,筛选出所述至少一个编辑对象对应的预设的至少一个属性特征,以得到所述第一状态树。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的编辑内容的恢复方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的编辑内容的恢复方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,可直接加载到计算机的内部存储器,所述存储器为上述第三方面所述电子设备包含的存储器中,并含有软件代码,所述计算机程序经由计算机载入并执行后能够实现如第一方面所述的编辑内容的恢复方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开实施例提供的编辑内容的恢复方法中,获得针对用户交互界面展示的编辑内容的恢复操作,确定所述恢复操作所属操作类型对应的数据集合,所述数据集合包括一个或多个差异数据,所述差异数据是响应编辑操作前后所述编辑内容分别对应的状态树的差异,所述编辑操作是针对所述编辑内容的编辑操作。从所述数据集合中获得距离当前时间最近的至少一个差异数据,所述至少一个差异数据的数目与所述恢复操作对应的恢复次数相同。基于所述至少一个差异数据更新所述第一状态树,以得到第二状态树,在所述用户交互界面中显示所述第二状态树对应的编辑内容,从而实现了恢复用户交互界面展示的编辑内容的目的。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种编辑内容的恢复方法的流程图;
图2是根据一示例性实施例示出的状态树的更新过程示意图;
图3a至图3b是根据一示例性实施例示出的获取恢复操作的过程示意图;
图4a至图4b是根据一示例性实施例示出的将差异数据存储至数据集合的过程示意图;
图5是根据一示例性实施例示出的JSON格式比对结果示意图;
图6是根据一示例性实施例示出的用户交互界面的又一实现方式的示意图;
图7是根据一示例性实施例示出的一种编辑内容的恢复装置框图;
图8是根据一示例性实施例示出的一种用于电子设备的装置800的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开实施例提供了一种编辑内容的恢复方法、装置、电子设备、计算机可读存储介质以及计算机程序产品。
下面结合附图对上述编辑内容的恢复方法进行说明。
图1是根据一示例性实施例示出的一种编辑内容的恢复方法的流程图,该方法在实施过程中可以包括以下步骤S11至步骤S15。
在步骤S11中,获取针对用户交互界面展示的编辑内容的恢复操作,所述编辑内容对应第一状态树,所述编辑内容是基于所述第一状态树展示在所述用户交互界面上的。
在步骤S12中,确定所述恢复操作所属操作类型对应的数据集合。
所述数据集合包括一个或多个差异数据,所述差异数据是响应编辑操作前后所述编辑内容分别对应的状态树的差异,所述编辑操作是针对所述编辑内容的编辑操作。
示例性的,响应编辑操作前用户交互界面展示的编辑内容与响应编辑操作后用户交互界面展示的编辑内容可能不同。
在步骤S13中,从所述数据集合中获得距离当前时间最近的至少一个差异数据,所述至少一个差异数据的数目与所述恢复操作对应的恢复次数相同。
在步骤S14中,基于所述至少一个差异数据更新所述第一状态树,以得到第二状态树。
在步骤S15中,在所述用户交互界面中显示所述第二状态树对应的编辑内容。
示例性的,恢复操作为撤销操作或回退操作,其中,回退操作是指撤回撤销操作,即将用户交互界面展示的编辑内容退回到撤销操作之前的内容。下面举例对回退操作进行说明。
示例性的,操作类型包括撤销操作类型或回退操作类型。撤销操作对应撤销操作类型,回退操作对应回退操作类型。
例如,用户交互界面展示的编辑内容包括“美丽人生”,用户在用户交互界面输入了“ADC”后,用户交互界面展示的编辑内容包括“美丽人生ADC”。在执行撤销操作后,用户交互界面展示的编辑内容包括“美丽人生”,在执行回退操作后,用户交互界面展示的编辑内容包括“美丽人生ADC”。
示例性的,用户交互界面可以为应用程序客户端或网页客户端中的界面;客户端可以为:office办公客户端,或,画图客户端,例如,CAD(Computer Aided Design,计算机辅助设计),或,在线编辑文档客户端,或,编辑程序代码的客户端。
示例性的,编辑内容包括但不限于:文本、图片、表格、页面、组件、文件中的至少一个。
示例性的,不同客户端对应的用户交互界面展示的编辑内容可能不同,也可能相同。
示例性的,数据集合的表现形式有多种,本公开实施例提供但不限于队列、数组、函数、表格、链表中的任一种。
示例性的,随着时间的流失,用户可能通过用户交互界面不断的对编辑内容进行编辑,即用户交互界面展示的编辑内容对应的状态树在不断发生变化,用户交互界面展示的编辑内容也在随之不断发生变化。
下面对状态树进行说明。
状态树包括所述编辑内容中的至少一个编辑对象的属性特征。示例性的,编辑内容包含的至少一个编辑对象是指用户交互界面展现的用户能够进行编辑的组件。
示例性的,上述组件可以为编辑框、窗口中任一个。
示例性的,编辑对象的属性特征包括但不限于:具体内容、具体内容在编辑对象中的位置、具体内容的格式、具体内容的来源链接中的一种或多种。
示例性的,若编辑对象包括一个或多个子编辑对象,那么,编辑对象的属性特征还包括一个或多个子编辑对象,以及,一个或多个子编辑对象的属性特征。
示例性的,子编辑对象可以是用户交互界面展现的用户能够进行编辑的组件;示例性的,子编辑对象的属性特征的说明可以参见编辑对象的属性特征,这里不再赘述。
示例性的,若本公开实施例使用的前端框架为Vuex,那么,状态树可以为Vuex的状态树;若本公开实施例使用的前端框架为Rudex,那么,状态树可以为Rudex的状态树(state树)。
下面举例对上述状态树进行说明。
图2是根据一示例性实施例示出的状态树的更新过程示意图,该过程涉及状态树以及用户交互界面。
示例性的,状态树以及用户交互界面可以属于同一电子设备,该电子设备可以为任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如,手机、平板电脑、掌上电脑、个人计算机、可穿戴设备、智能电视等。
图2中是以用户交互界面21为word编辑界面为例进行说明。图2所示的word编辑界面的编辑对象包括:文档编辑窗口25(用点划线框出)以及word文档题目编辑框26(用虚线框出);如图2所示,用户可以在文档编辑窗口25中输入文本、表格、图像等内容。但是不能在word文档题目编辑框26中编辑word文档题目。若用户需要更改在word文档题目,那么用户可以在展示有word文档的图标的用户交互界面(如图6所示)中,在word文档题目编辑框26中编辑word文档的题目。
综上,用户交互界面不同,用户能够编辑的编辑对象可能不同,可能相同,可以理解的是,对于用户不能编辑的编辑对象(例如用户交互界面21中的word文档题目编辑框26)而言,编辑对象的属性特征是不会变更的,所以状态树可以不包括这种类型的编辑对象的属性特征。示例性的,状态树包括所述编辑内容中的用户可编辑的编辑对象(例如用户交互界面21中的文档编辑窗口25)的属性特征。
下面以状态树包含的编辑对象为文档编辑窗口为例进行说明。
如图2所示,图2所示的用户交互界面21展示的编辑内容包括的编辑对象的属性特征,如状态树23所示,状态树23中的文本1中的文本内容为“草船借箭哪些地方可以借鉴”,文本1的文本格式包括:字体为宋体、字体大小为8pt、文本1的第11个字符和第12个字符具有下划线、文本1的第11个字符和第12个字符被加粗,文本1在编辑对象中的位置包括:特殊格式为首行缩进2字符;图像1的来源地址为图像1的存储路径链接,图像的格式包括:颜色为黑白,版式为嵌入型。
若用户对用户交互界面21的文档编辑窗口中的内容进行了编辑,如图2右侧所示。那么,图2所示的用户交互界面21展示的编辑内容包括的编辑对象的属性特征如状态树24所示,状态树24中的文本1中的文本内容为“草船借箭哪些地方可以借鉴”,文本1的文本格式包括:字体为宋体、字体大小为8pt、文本1的第11个字符和第12个字符具有下划线、文本1的第11个字符和第12个字符被加粗,文本1在编辑对象中的位置包括:特殊格式为首行缩进2字符;图像1的来源地址为图像1的存储路径链接,图像的格式包括:颜色为黑白,版式为嵌入型;文本2的文本内容为“如上图所示”,文本2的文本内容格式包括:字体为宋体、字体大小为8pt,文本2在编辑对象中的位置包括:特殊格式为首行缩进2字符。
示例性的,编辑对象或子编辑对象的属性特征可以基于编辑对象或子编辑对象的具体类型设定,例如,对于编辑对象或子编辑对象为文本而言,属性特征可以包括:文本的格式、字符间距和文本的段落中的至少一个。对于编辑对象或子编辑对象为图像而言,属性特征可以包括:颜色与线条、图像大小、图像的版式、图像的控制参数(颜色、亮度和对比度)中的一个或多个。
示例性的,文本的格式包括但不限于:字体、字形、字号、字体颜色、下划线线型、下划线颜色、着重号、效果中的一个或多个。字符间距包括但不限于:缩放的具体比例、间距的类型、字符的位置中的至少一个。文本的段落包括缩进和间距、换行和分页中的至少一个。
若用户交互界面展示的编辑内容对应的状态树由状态树23切换至状态树24,那么用户交互界面展示的编辑内容由图2左侧所示用户交互界面21展示的编辑内容更新至图2右侧用户交互界面21展示的编辑内容。
下面结合图2中的状态树23和状态树24对差异数据进行说明,状态树23和状态树24的差异数据为:增加节点文本2,且文本2的文本内容格式包括:字体为宋体、字体大小为8pt,文本2在编辑对象中的位置包括:特殊格式为首行缩进2字符。
下面对步骤S13中的“所述至少一个差异数据的数目与所述恢复操作对应的恢复次数相同”进行说明。
示例性的,恢复操作可以对应一次恢复或多次恢复。一次恢复即回滚一次差异数据。恢复操作可以为撤销操作或回退操作,一次恢复可以为一次回退或一次撤销。
示例性的,撤销操作类型对应的数据集合包含的一个差异数据对应一次撤销,一次撤销即回滚撤销操作类型对应的数据集合包含的一个差异数据。撤销操作可以包括一次或多次撤销。
示例性的,回退操作类型对应的数据集合包含的一个差异数据对应一次回退,一次回退即回滚回退操作类型对应的数据集合包含的一个差异数据。回退操作可以包括一次或多个回退。
下面结合撤销或回退对恢复操作进行说明。本公开实施例提供的步骤S11的实现方式有多种,本公开实施例提供但不限于以下三种。
第一种步骤S11的实现方式包括:获取针对用户交互界面展示的编辑内容的语音指令。
示例性的,该语音指令可以包括执行撤销或回退的次数,例如,回退5步。示例性的,若语音指令不包括执行撤销或回退的次数,默认执行一次撤销或回退。
第二种步骤S11的实现方式包括:若检测到一个或多个按键被触按,确定获得针对用户交互界面展示的编辑内容的恢复操作。
示例性的,上述一个或多个按键可以为虚拟按键或实体按键,若为实体按键,示例性的,Ctrl+Z两个按键被触按,确定获得撤销操作,若Ctrl+Shift+Z三个按键同时被触按,确定获得回退操作。
示例性的,触按一次Ctrl+Z,执行一次撤销;触按一次Ctrl+Shift+Z,执行一次回退。
示例性的,当一个或多个按键被同时触按时,可基于一个或多个按键被触按的力度大小和/或被触按的时间长短,确定需要执行的撤销或回退的次数。
若上述一个或多个按键为虚拟按键,下面举例对获得恢复操作的过程进行说明。
图3a至图3b是根据一示例性实施例示出的获取恢复操作的过程示意图。
图3a至图3b所示的用户交互界面与图2相对应,图3a至图3b中示出了撤销操作对应的虚拟按键31以及回退操作对应的虚拟按键32。示例性的,图3a至图3b仅为示例,本公开实施例并不对虚拟按键31和虚拟按键32的形状、颜色、大小、在用户交互界面中的位置进行限定。
示例性的,用户点击一次虚拟按键31执行一次撤销;用户点击一次回退按键32,执行一次回退。
示例性的,若用户需要一次执行多次撤销,示例性的,可以点击虚拟按键31对应的下拉标识(图3a中以向下的三角形表示),从而可以展示图3a所示的菜单33。菜单33展示了N个差异数据,N为大于或等于1的正整数,N个差异数据按照时间从早到晚顺序排列,以得到差异数据1至差异数据N,即差异数据N为距离当前时间最近的差异数据。
示例性的,用户可以从菜单33中选择需要撤销的次数,如图3a所示,用户选择的撤销的次数为16,图3a中用选中差异数据的数目表征选择的撤销的次数,例如选中差异数据N至差异数据N-15,表征用户选择的撤销的次数为16。
示例性的,若用户需要执行多次回退,示例性的,可以点击虚拟按键32对应的下拉标识(图3b中以向下的三角形表示),从而可以展示图3b所示的菜单34。菜单34展示了M个差异数据,M为大于或等于1的正整数,M个差异数据按照时间从早到晚顺序排列,以得到差异数据1至差异数据M,即差异数据M为距离当前时间最近的差异数据。
示例性的,用户可以从菜单34中选择需要回退的次数,如图3b所示,用户选择的回退的次数为6,图3b中用选中差异数据的数目表征选择的回退的次数,例如选中差异数据M至差异数据M-5,表征用户选择的回退的次数为6。
第三种步骤S11的实现方式包括:若检测到第一预设手势,确定获得针对用户交互界面展示的编辑内容的恢复操作。
示例性的,第一预设手势可以为向上滑动、向下滑动、画圆或画对勾。可以理解的是,本公开实施例并不局限于上述手势,任意一种手势均在本公开实施例的保护范围内,如手势可以为“画M”等。
示例性的,撤销操作和回退操作分别对应的第一预设手势不同。
在一可选实现方式中,在步骤S14中,可以按照至少一个差异数据的获得时间从晚至早依次还原第一状态树,以得到更新后的第二状态树。
在一可选实现方式中,在步骤S14中,可以基于至少一个差异数据对第一状态树的深拷贝数据进行更新;基于更新后的深拷贝数据更新所述第一状态树。
本公开实施例提供的编辑内容的恢复方法中,获得针对用户交互界面展示的编辑内容的恢复操作,确定所述恢复操作所属操作类型对应的数据集合,所述数据集合包括一个或多个差异数据,所述差异数据是响应编辑操作前后所述编辑内容分别对应的状态树的差异,所述编辑操作是针对所述编辑内容的编辑操作。从所述数据集合中获得距离当前时间最近的至少一个差异数据,所述至少一个差异数据的数目与所述恢复操作对应的恢复次数相同。基于所述至少一个差异数据更新所述第一状态树,以得到第二状态树,在所述用户交互界面中显示所述第二状态树对应的编辑内容,从而实现了恢复用户交互界面展示的编辑内容的目的。
可以理解的是,若数据集合存储一个或多个状态树的拷贝数据,也可以实现恢复用户交互界面展示的编辑内容的目的,在检测到恢复操作时,从数据集合中获得相应的状态树的拷贝数据,使用该状态树的拷贝数据更新第一状态树即可。本公开实施例中,数据集合存储的是一个或多个差异数据与数据集合存储一个或多个状态树的拷贝数据相比,在数据集合存储的数据量一定的情况下,可以增大存储的差异数据的数目,在数据集合存储的差异数据的数目一定的情况下,数据集合存储的数据量大大降低。
可以理解的是,若第一状态树包含的编辑对象对应的属性特征存储在不同存储空间,在基于所述至少一个差异数据更新第一状态树的过程中,可能需要分别对不同存储空间存储的编辑对象对应的一个或多个属性特征进行更新,更新时间较长。本公开实施例中,示例性的,第一状态树包含的编辑对象对应的属性特征存储在同一存储空间;所以在基于所述至少一个差异数据更新第一状态树的过程中,可以基于所述至少一个差异数据对该状态树中的一个或多个编辑对象对应的一个或多个属性特征同时进行更新,更新时间较短。
在一可选实现方式中,编辑内容的恢复方法还可以包括获取操作类型对应的数据集合方法。获取操作类型对应的数据集合方法包括以下步骤A1至步骤A7。
在步骤A1中,获得深拷贝数据,所述深拷贝数据为第三状态树的深拷贝数据,所述第三状态树为前一次响应所述编辑操作后所述编辑内容对应的状态树。
深拷贝是指源对象(即第三状态树)与拷贝对象(即深拷贝数据)互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。
随着时间的流逝,用户交互界面展示的编辑内容对应的状态树可能会发生变化,但是深拷贝数据不会因为状态树的变化而变化。如图2所示,为了得到差异数据,需要存储变更之前的状态树,从而可以将变更之前的状态树和变更后的状态树进行比较,以得到差异数据。
示例性的,步骤A1为初始化步骤,示例性的,步骤A1可以在打开用户交互界面后执行。
示例性的,在初始化步骤中,撤销操作类型对应的数据集合和回退操作类型对应的数据集合可以为空,即不包含任何差异数据。
在步骤A2中,接收针对所述编辑内容的编辑操作。
在步骤A3中,响应所述编辑操作,更新所述第三状态树,以得到第四状态树。
在步骤A4中,获得所述第四状态树与所述深拷贝数据的差异数据。
在步骤A5中,确定所述编辑操作对应的操作类型。
编辑操作对应的操作类型可以为回退操作类型或撤销操作类型。
示例性的,若编辑操作为回退操作,则编辑操作对应的操作类型为撤销操作类型。若编辑操作为撤销操作,则编辑操作对应的操作类型为回退操作类型。若编辑操作为修改操作,则编辑操作对应的操作类型为撤销操作类型。
修改操作是指除了回退操作和撤销操作以外的针对编辑内容的编辑操作,例如,用户通过键盘或触控板或语音向用户交互界面添加内容的操作,如,用户通过触按键盘上的字母按键在用户交互界面添加相应字母。例如,用户通过键盘或触控板或语音将用户交互界面中的局部内容删除的操作,如,用户通过键盘上的BackSpace按键删除一个或多个字符。
可以理解的是,通过回退操作或撤销操作也可以在用户交互界面中添加内容或删除内容,但是对于电子设备而言,回退操作、撤销操作、修改操作对应的指令不同,响应不同操作的方式不同。例如,响应回退操作或撤销操作的方式如步骤S12至步骤S15所示,响应修改操作的方式为将需要添加的内容增加至状态树,将需要删除的内容从状态树中删除。
在步骤A6中,存储所述差异数据至所述操作类型对应的数据集合。
在步骤A7中,返回步骤A1。
示例性的,数据集合可以为数组,示例性的,数组包含的差异数据的下标变量越大,表征该差异数据距离当前时间越近。
示例性的,数据集合可以包括各记录步数分别对应的差异数据,其中,记录步数越大的差异数据距离当前时间越近。
在一可选实现方式中,若所述编辑操作对应操作类型为所述撤销操作类型,还包括以下步骤B1至步骤B2。
在步骤B1中,检测差异数据获取指令。
在步骤B2中,若检测到所述差异数据获取指令,执行步骤A4。
由于在得到差异数据获取指令的情况下,才会获得差异数据,实现了记录差异数据的可控性,避免在未得到差异数据获取指令的情况下记录差异数据的情况,从而避免出现非预期的问题。
示例性的,非预期的问题可以为:每间隔较短时间记录一次差异数据,导致差异数据记录频繁,增大数据集合存储的数据量;记录用户不需要的差异数据,导致可能需要执行多次恢复操作才会恢复到用户需要的版本。
在一可选实现方式中,步骤B1的实现方式有多种,本公开实施例提供但不限于以下四种。
第一种:若检测到所述编辑内容对应的状态树发生变更,确定检测到差异数据获取指令。
示例性的,对于用户而言,用户在用户交互界面展示的编辑内容进行编辑时,编辑内容是直接更新的,在底层技术中,是编辑内容对应的状态树中的数据发生变化,用户交互界面展示的编辑内容才会发生变化。基于此,可以监测状态树中的内容是否发生变更,若是,则确定检测到差异数据获取指令。
第二种:若检测到间隔预设时长,确定检测到所述差异数据获取指令。
示例性的,预设时长可以基于实际情况设定,这里不再赘述。
第三种:若检测到预设手势,确定检测到所述差异数据获取指令。
示例性的,预设手势可以为向上滑动、向下滑动、画圆或画对勾。可以理解的是,本公开实施例并不局限于上述手势,任意一种手势均在本公开实施例的保护范围内,如手势可以为“画M”等。
第四种:若检测到预设按键被触按,确定检测到所述差异数据获取指令。
示例性的,预设按键可以为一个按键或多个按键的组合;示例性的,预设按键可以为虚拟按键或实体按键。
示例性的,预设按键可以为表征保存的按键,例如Ctrl+S。
在一可选实现方式中,检测到上述四种中至少一个满足时,确定检测到所述差异数据获取指令。
示例性的,对于操作类型对应的数据集合存储的差异数据的数目没有限制;示例性的,对于操作类型对应的数据集合存储的差异数据的数目有限制,例如,操作类型对应的数据集合存储的差异数据的最大数目为预设记录步数。
示例性的,撤销操作类型对应的数据集合对应的预设记录步数和回退操作类型对应的数据集合对应的预设记录步数可以相同,可以不同。
示例性的,若对于操作类型对应的数据集合存储的差异数据的数目有限制,则步骤A6的实现过程包括以下步骤C1至步骤C3。
在步骤C1中,检测所述操作类型对应的数据集合已经存储的差异数据的数目是否等于预设记录步数,若是,执行步骤C2,若否,执行步骤C3。
在步骤C2中,删除所述数据集合中存储时间最早的差异数据。
在步骤C3中,存储所述第四状态树与所述深拷贝数据的差异数据至所述操作类型对应的数据集合。
下面以数据集合为数组为例进行说明。
图4a至图4b是根据一示例性实施例示出的将差异数据存储至数据集合的过程示意图。
假设预设记录步数为20,若数据集合Array如图4a所示的数据集合41,数据集合41已经存储的差异数据的数目为18,其中,Array[0]=差异数据1、Array[1]=差异数据2,…,Array[17]=差异数据18,其中,Array[18]和Array[19]未被赋值,因此为空值NULL,其中,差异数据1至差异数据18是按照存储时间从早到晚排序的。
示例性的,可以将当前得到的差异数据(假设为差异数据19)赋值给数据集合41中的Array[18],以得到如图4a所示的数据集合42。其中,差异数据19的获取时间晚于差异数据18的存储时间。
假设预设记录步数为20,若数据集合Array如图4b所示的数据集合43,数据集合43已经存储的差异数据的数目为20,其中,Array[0]=差异数据1、Array[1]=差异数据2,…,Array[19]=差异数据20,其中,差异数据1至差异数据20是按照存储时间从早到晚排序的。
示例性的,可以将当前得到的差异数据(假设为差异数据21)存储至数据集合43之前,先进行赋值,Array[0]=差异数据2、Array[1]=差异数据3,…,Array[18]=差异数据20,即将差异数据1删除,将差异数据21赋值给Array[19],以得到数据集合44。
在一可选实现方式中,步骤A4的实现方式有多种,本公开实施例中,提供但不限于以下两种实现方式。
第一种步骤A4的实现方式包括以下步骤D11至步骤D12。
在步骤D11中,将深拷贝数据与第四状态树进行逐行比对,获得比对结果。
深拷贝数据与第四状态树的格式相同,假设均为JSON(JavaScript ObjectNotation,JS对象简谱)格式。
图5是根据一示例性实施例示出的JSON格式比对结果示意图。
假设深拷贝数据为JSON A,假设JSON A为:
Figure BDA0002982673870000151
假设,第四状态树为JSON B,JSON B为:
Figure BDA0002982673870000161
示例性的,图5中示出的第5行至第10行,为逐行比对JSON A与JSON B得到的比对结果。
在步骤D12中,从所述比对结果中获得差异数据。
仍以图5为例,差异数据为:
Figure BDA0002982673870000162
第一种实现方式的耗时较长,因此提供第二种实现方式。
第二种步骤A4的实现方式包括以下步骤D21至步骤D22。
在步骤D21中,将所述深拷贝数据与所述第四状态树分别转换成对象简谱格式。
在步骤D22中,比较对象简谱格式的所述深拷贝数据与对象简谱格式的所述第四状态树,得到所述差异数据。
示例性的,获取JSON格式的所述深拷贝数据(后续称为数据A)包含的元素的数据类型,获取JSON格式的第四状态树(后续称为数据B)包含的元素的数据类型;基于数据类型对数据A和数据B中相应位置元素进行比较,以得到差异数据。
示例性的,若某个元素的数据类型为字符串,那么,利用字符串的比较方式比较数据A中该元素和数据B中该元素,以判断两者是否相同,例如,若文本1中的文本内容的数据类型为字符串,那么,即利用字符串的比较方式,比较JSON A中的文本1的文本内容“草船借箭哪些地方可以借鉴”与JSON B中的文本1的文本内容“草船借箭哪些地方可以借鉴”是否相同,例如,通过JSON A.equals(JSON B)比较JSON A和JSON B。
示例性的,若某个元素的数据类型为数组,那么,利用数组的比较方式比较数据A中该元素和数据B中该元素,以判断两者是否相同,例如,若文本1中的文本内容的数据类型为数组,那么,即利用数组的比较方式,比较JSON A中的文本1的文本内容“草船借箭哪些地方可以借鉴”与JSON B中的文本1的文本内容“草船借箭哪些地方可以借鉴”是否相同。
在一可选实现方式中,本公开实施例提供的编辑内容的恢复方法可以应用于网页客户端,网页客户端运行在浏览器中,在网页客户端实施编辑内容的恢复方法过程中,可以在浏览器的JS(javascript)脚本的主线程中获得差异数据,例如,利用getPatch(数据A,数据B)函数获得数据A和数据B的差异数据,在差异数据获得结束后,主线程才会执行其他操作,即若主线程未处理执行完毕获取差异数据的操作,主线程无法处理其他操作,例如,用户对用户交互界面展示的编辑内容无法进行编辑,对于用户而言就是浏览器“卡住”了或“崩溃”了。
在一可选实现方式中,为了在执行获得差异数据的操作过程中,还能够执行其他操作,可以借助webWorker(工作线程)执行获得差异数据的过程。
webWorker是JavaScript创建的子线程,子线程完全受主线程控制,可以用webWorker来处理一些比较耗时的计算。webWorker运行期间并不影响主线程的运作。
在一可选实现方式中,若状态树包含的数据量较多,比较状态树和状态树的深拷贝数据的时间较长,即得到差异数据的时间较长。为了缩短得到差异数据的过程,可以降低状态树包含的数据的数据量。
降低状态树包含的数据的数据量的方式可以有多种,本公开实施例提供但不限于以下三种方式。
第一种方式减少状态树包含的编辑对象的数目。
可以理解的是,用户交互界面展示有一个或多个候选编辑对象,但是并不是所有的候选编辑对象用户都能够通过用户交互界面进行更改,如图2所示的word编辑界面的编辑对象包括:文档编辑窗口以及word文档题目编辑框;如图2所示,用户可以在文档编辑窗口中输入文本、表格、图像等内容。但是用户不能再在图2所示的用户交互界面中编辑word文档题目编辑框中的内容。
图6是根据一示例性实施例示出的用户交互界面的又一实现方式的示意图。
示例性的,用户可以在展示有word文档的图标的用户交互界面61中,对word文档题目编辑框26中的文档题目进行编辑。即在图2所示的用户交互界面中无法在word文档题目编辑框中进行编辑。
所以对于用户交互界面21展示的编辑内容对应的状态树可以不包括word文档题目编辑框26这一编辑对象。
可理解的是,用户在用户交互界面中能够对某个候选编辑对象进行编辑,但是用户并不关注该候选编辑对象,即在执行撤销操作或回退操作时,可以不针对该候选编辑对象进行撤销操作或回退操作。
因此,可以预先设置编辑对象,以从用户交互界面展示的至少一个候选编辑对象中,筛选得到一个或多个编辑对象。
基于此,本公开实施例提供的编辑内容的恢复方法还包括获得状态树的实现方法,该方法在实施过程中包括以下步骤E11至步骤E13。
在步骤E11中,获取所述用户交互界面展示的至少一个候选编辑对象。
在步骤E12中,从所述至少一个候选编辑对象中筛选出预设的至少一个编辑对象。
从步骤E13中,获取所述用户交互界面展示的所述至少一个编辑对象的至少一个属性特征,以得到状态树。
示例性的,步骤E13中得到的状态树可以为第一状态树或第三状态树。
本公开实施例中,可以提前设置状态树需要记录的编辑对象,示例性的,状态树可能未存储所有编辑对象的属性特征,所以比较状态树与状态树的深拷贝数据的速度较快,得到差异数据的速度较快。
第二种,减少状态树包含的编辑对象对应的属性特征的数目。
可以理解的是,在进行撤销操作或回退操作的过程中,用户可能并不关注某个类型的属性特征,例如,可能并不关注文本的格式,那么,状态树包含的编辑对象的对应的属性特征可以不包括文本的格式。
因此,可以预先设置属性特征,从用户交互界面展示的至少一个编辑对象对应的候选属性特征中,筛选出预先设置的属性特征。
基于此,本公开实施例提供的编辑内容的恢复方法还包括获得状态树的实现方法,该方法在实施过程中包括以下步骤E21至步骤E23。
在步骤E21中,获取所述用户交互界面展示的至少一个编辑对象。
在步骤E22中,获取所述用户交互界面展示的所述至少一个编辑对象的至少一个候选属性特征。
在步骤E23中,从所述至少一个编辑对象对应的至少一个候选属性特征中,筛选出所述至少一个编辑对象对应的预设的至少一个属性特征,以得到状态树。
示例性的,步骤E23中得到的状态树可以为第一状态树或第三状态树。
本公开实施例中,可以提前设置状态树需要记录的编辑对象的属性特征,示例性的,状态树可能未存储编辑对象的所有属性特征,所以比较状态树与状态树的深拷贝数据的速度较快,得到差异数据的速度较快。
第三种,减少状态树包含的编辑对象的数目,以及,减少状态树包含的编辑对象对应的属性特征的数目,该方法在实施过程中包括以下步骤E31至步骤E34。
在步骤E31中,获取所述用户交互界面展示的至少一个候选编辑对象。
在步骤E32中,从所述至少一个候选编辑对象中筛选出预设的至少一个编辑对象。
从步骤E33中,获取所述用户交互界面展示的所述至少一个编辑对象的至少一个候选属性特征。
在步骤E34中,从所述至少一个编辑对象对应的至少一个候选属性特征中,筛选出所述至少一个编辑对象对应的预设的至少一个属性特征,以得到状态树。
示例性的,步骤E34中得到的状态树可以为第一状态树或第三状态树。
本公开实施例中,可以提前设置状态树需要记录的编辑对象,以及提前设置状态树需要记录的编辑对象的属性特征,示例性的,状态树可能未存储所有编辑对象的属性特征,状态树可能未存储编辑对象的所有属性特征,所以比较状态树与状态树的深拷贝数据的速度较快,得到差异数据的速度较快。
在一可选实现方式中,状态树可以包含所有编辑对象以及编辑对象对应的所有属性特征。
在一可选实现方式中,由于用户交互界面是基于状态树展示相应的编辑内容的,为了能够保证用户交互界面正常显示编辑内容,本公开实施例中“获得差异数据”过程中涉及的状态树(例如,第一状态树或第二状态树或第三状态树或第三状态树)为上述三种方式中任一种方式获得的状态树,本公开实施例中用户交互界面基于状态树展示的编辑内容中涉及的状态树为包含所有编辑对象以及编辑对象对应的所有属性特征的原始状态树。示例性的,“获得差异数据”过程中涉及的状态树可以是原始状态树的子集。
上述本申请公开的实施例中详细描述了方法,对于本申请的方法可采用多种形式的装置实现,因此本申请还公开了多种装置,下面给出具体的实施例进行详细说明。
图7是根据一示例性实施例示出的一种编辑内容的恢复装置框图。参照图7,该装置包括第一获取模块71、第一确定模块72、第二获取模块73、第一更新模块74以及显示模块75。
第一获取模块71,被配置为获取针对用户交互界面展示的编辑内容的恢复操作,所述编辑内容对应第一状态树,所述编辑内容是基于所述第一状态树展示在所述用户交互界面上的;
第一确定模块72,被配置为确定所述恢复操作所属操作类型对应的数据集合,所述数据集合包括一个或多个差异数据,所述差异数据是响应编辑操作前后所述编辑内容分别对应的状态树的差异,所述编辑操作是针对所述编辑内容的编辑操作;
第二获取模块73,被配置为从所述数据集合中获得距离当前时间最近的至少一个差异数据,所述至少一个差异数据的数目与所述恢复操作对应的恢复次数相同;
第一更新模块74,被配置为基于所述至少一个差异数据更新所述第一状态树,以得到第二状态树;
显示模块75,被配置为在所述用户交互界面中显示所述第二状态树对应的编辑内容。
在一可选实现方式中,所述操作类型包括撤销操作类型或回退操作类型,还包括:
第三获取模块,被配置为获得深拷贝数据,所述深拷贝数据为第三状态树的深拷贝数据,所述第三状态树为前一次响应所述编辑操作后所述编辑内容对应的状态树;
接收模块,被配置为接收针对所述编辑内容的编辑操作;
第二更新模块,被配置为响应所述编辑操作,更新所述第三状态树,以得到第四状态树;
第四获取模块,被配置为获得所述第四状态树与所述深拷贝数据的差异数据;
第二确定模块,被配置为确定所述编辑操作对应的操作类型;
存储模块,被配置为存储所述差异数据至所述操作类型对应的数据集合。
在一可选实现方式中,所述编辑操作对应操作类型为所述撤销操作类型,还包括:
检测模块,被配置为检测差异数据获取指令;
触发模块,被配置为若检测到所述差异数据获取指令,触发所述第四获取模块。
在一可选实现方式中,所述存储模块具体被配置为:
删除单元,被配置为若所述操作类型对应的数据集合已经存储的差异数据的数目等于预设记录步数,删除所述数据集合中存储时间最早的差异数据;
存储单元,被配置为存储所述第四状态树与所述深拷贝数据的差异数据至所述操作类型对应的数据集合。
在一可选实现方式中,所述第四获取模块具体被配置为:
转换格式单元,被配置为将所述深拷贝数据与所述第四状态树分别转换成对象简谱格式;
第一获取单元,被配置为比较对象简谱格式的所述深拷贝数据与对象简谱格式的所述第四状态树,得到所述差异数据。
在一可选实现方式中,所述检测模块具体被配置为:
第三确定模块,被配置为若检测到预设信息,确定检测到所述差异数据获取指令;所述预设信息包括:所述编辑内容对应的状态树发生变更、间隔预设时长、预设手势、预设按键被触按、预设触按轨迹中的至少一个。
在一可选实现方式中,还包括:
第五获取模块,被配置为获取所述用户交互界面展示的至少一个候选编辑对象;
筛选模块,被配置为从所述至少一个候选编辑对象中筛选出预设的至少一个编辑对象;
第六获取模块,被配置为获取所述用户交互界面展示的所述至少一个编辑对象的至少一个属性特征,以得到所述第一状态树。
在一可选实现方式中,所述第六获取模块具体被配置为:
第二获取单元,被配置为获取所述用户交互界面展示的所述至少一个编辑对象的至少一个候选属性特征;
筛选单元,被配置为从所述至少一个编辑对象对应的至少一个候选属性特征中,筛选出所述至少一个编辑对象对应的预设的至少一个属性特征,以得到所述第一状态树。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种用于电子设备的装置800的框图。
电子设备包括但不限于输入单元81、存储器82、显示单元83以及处理器84等部件。本领域技术人员可以理解,图8中示出的结构只做实现方式的举例,并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图8对电子设备的各个构成部件进行具体的介绍:
示例性的,输入单元81可用于接收用户输入的信息,例如恢复操作。
示例性的,输入单元81可以包括触控面板811以及其他输入设备812。触控面板811,也称为触摸屏,可收集用户在其上的触摸操作(比如用户使用手指、触控笔等任何适合的物体或附件在触控面板811上的操作),并根据预先设定的程式驱动相应的连接装置(例如驱动处理器84中的恢复操作功能)。可选的,触控面板811可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器84,并能接收处理器84发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板811。除了触控面板811,输入单元81还可以包括其他输入设备812。具体地,其他输入设备812可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
示例性的,存储器82可用于存储软件程序以及模块,处理器84通过运行存储在存储器82的软件程序以及模块,从而执行电子设备的各种功能应用以及数据处理。存储器82可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序等;存储数据区可存储根据电子设备的使用所创建的数据(比如差异数据等)。此外,存储器82可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
示例性的,显示单元83可用于显示由用户输入的信息或提供给用户的信息(例如显示视频)以及电子设备的各种菜单。显示单元83可包括显示面板831,可选的,可以采用LCD(Liquid CrystalDisplay,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板831。进一步的,触控面板811可覆盖显示面板831,当触控面板811检测到在其上或附近的触摸操作后,传送给处理器84以确定触摸事件的类型,随后处理器84根据触摸事件的类型在显示面板831上提供相应的视觉输出。
示例性的,触控面板811与显示面板831可作为两个独立的部件来实现电子设备800的输出和输入功能,但是在某些实施例中,可以将触控面板811与显示面板831集成而实现电子设备的输入和输出功能。
处理器84是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器82内的软件程序和/或模块,以及调用存储在存储器82内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。示例性的,处理器84可包括一个或多个处理单元;示例性的,处理器84可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器84中。
电子设备还包括给各个部件供电的电源85(比如电池),示例性的,电源可以通过电源管理***第一与处理器84逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
尽管未示出,电子设备还可以包括摄像头、蓝牙模块、RF(Radio Frequency,射频)电路、传感器、音频电路、WiFi(wireless fidelity,无线保真)模块、传感器、网络单元、接口单元等等。
电子设备通过网络单元为用户提供了无线的宽带互联网访问,如访问服务器。
接口单元为外部装置与电子设备连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备内的一个或多个元件或者可以用于在电子设备和外部装置之间传输数据。
在本公开实施例中,该电子设备所包括处理器84可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
该电子设备所包括处理器84具有以下功能:获取针对用户交互界面展示的编辑内容的恢复操作,所述编辑内容对应第一状态树,所述编辑内容是基于所述第一状态树展示在所述用户交互界面上的;确定所述恢复操作所属操作类型对应的数据集合,所述数据集合包括一个或多个差异数据,所述差异数据是响应编辑操作前后所述编辑内容分别对应的状态树的差异,所述编辑操作是针对所述编辑内容的编辑操作;从所述数据集合中获得距离当前时间最近的至少一个差异数据,所述至少一个差异数据的数目与所述恢复操作对应的恢复次数相同;基于所述至少一个差异数据更新所述第一状态树,以得到第二状态树;在所述用户交互界面中显示所述第二状态树对应的编辑内容。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器802,上述指令可由电子设备800的处理器804执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,可直接加载到计算机的内部存储器,所述存储器为上述所述电子设备包含的存储器中,并含有软件代码,所述计算机程序经由计算机载入并执行后能够实现所述的编辑内容的恢复方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种编辑内容的恢复方法,其特征在于,包括:
获取针对用户交互界面展示的编辑内容的恢复操作,所述编辑内容对应第一状态树,所述编辑内容是基于所述第一状态树展示在所述用户交互界面上的;
确定所述恢复操作所属操作类型对应的数据集合,所述数据集合包括一个或多个差异数据,所述差异数据是响应编辑操作前后所述编辑内容分别对应的状态树的差异,所述编辑操作是针对所述编辑内容的编辑操作;
从所述数据集合中获得距离当前时间最近的至少一个差异数据,所述至少一个差异数据的数目与所述恢复操作对应的恢复次数相同;
基于所述至少一个差异数据更新所述第一状态树,以得到第二状态树;
在所述用户交互界面中显示所述第二状态树对应的编辑内容。
2.根据权利要求1所述编辑内容的恢复方法,其特征在于,所述操作类型包括撤销操作类型或回退操作类型,获取所述操作类型对应的数据集合步骤包括:
获得深拷贝数据,所述深拷贝数据为第三状态树的深拷贝数据,所述第三状态树为前一次响应所述编辑操作后所述编辑内容对应的状态树;
接收针对所述编辑内容的编辑操作;
响应所述编辑操作,更新所述第三状态树,以得到第四状态树;
获得所述第四状态树与所述深拷贝数据的差异数据;
确定所述编辑操作对应的操作类型;
存储所述差异数据至所述操作类型对应的数据集合;
返回所述获得深拷贝数据步骤。
3.根据权利要求2所述编辑内容的恢复方法,其特征在于,所述编辑操作对应操作类型为所述撤销操作类型,还包括:
检测差异数据获取指令;
若检测到所述差异数据获取指令,执行所述获得所述第四状态树与所述深拷贝数据的差异数据步骤。
4.根据权利要求2或3所述编辑内容的恢复方法,其特征在于,所述存储所述差异数据至所述操作类型对应的数据集合步骤包括:
若所述操作类型对应的数据集合已经存储的差异数据的数目等于预设记录步数,删除所述数据集合中存储时间最早的差异数据;
存储所述第四状态树与所述深拷贝数据的差异数据至所述操作类型对应的数据集合。
5.根据权利要求2或3所述编辑内容的恢复方法,其特征在于,所述获得所述第四状态树与所述深拷贝数据的差异数据步骤包括:
将所述深拷贝数据与所述第四状态树分别转换成对象简谱格式;
比较对象简谱格式的所述深拷贝数据与对象简谱格式的所述第四状态树,得到所述差异数据。
6.根据权利要求3所述编辑内容的恢复方法,其特征在于,所述检测差异数据获取指令步骤包括:
若检测到预设信息,确定检测到所述差异数据获取指令;所述预设信息包括:所述编辑内容对应的状态树发生变更、间隔预设时长、预设手势、预设按键被触按、预设触按轨迹中的至少一个。
7.一种编辑内容的恢复装置,其特征在于,包括:
第一获取模块,被配置为获取针对用户交互界面展示的编辑内容的恢复操作,所述编辑内容对应第一状态树,所述编辑内容是基于所述第一状态树展示在所述用户交互界面上的;
第一确定模块,被配置为确定所述恢复操作所属操作类型对应的数据集合,所述数据集合包括一个或多个差异数据,所述差异数据是响应编辑操作前后所述编辑内容分别对应的状态树的差异,所述编辑操作是针对所述编辑内容的编辑操作;
第二获取模块,被配置为从所述数据集合中获得距离当前时间最近的至少一个差异数据,所述至少一个差异数据的数目与所述恢复操作对应的恢复次数相同;
第一更新模块,被配置为基于所述至少一个差异数据更新所述第一状态树,以得到第二状态树;
显示模块,被配置为在所述用户交互界面中显示所述第二状态树对应的编辑内容。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的编辑内容的恢复方法。
9.一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至6中任一项所述的编辑内容的恢复方法。
10.一种计算机程序产品,可直接加载到计算机的内部存储器,所述存储器为上述权利要求8所述电子设备包含的存储器中,并含有软件代码,所述计算机程序经由计算机载入并执行后能够实现如权利要求1至6中任一项所述的编辑内容的恢复方法。
CN202110291001.6A 2021-03-18 2021-03-18 编辑内容的恢复方法、装置、电子设备、介质及产品 Active CN113065317B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110291001.6A CN113065317B (zh) 2021-03-18 2021-03-18 编辑内容的恢复方法、装置、电子设备、介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110291001.6A CN113065317B (zh) 2021-03-18 2021-03-18 编辑内容的恢复方法、装置、电子设备、介质及产品

Publications (2)

Publication Number Publication Date
CN113065317A true CN113065317A (zh) 2021-07-02
CN113065317B CN113065317B (zh) 2024-03-12

Family

ID=76562087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110291001.6A Active CN113065317B (zh) 2021-03-18 2021-03-18 编辑内容的恢复方法、装置、电子设备、介质及产品

Country Status (1)

Country Link
CN (1) CN113065317B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535168A (zh) * 2021-07-13 2021-10-22 杭州安恒信息技术股份有限公司 一种基于json的前端撤销方法及相关装置
CN113656038A (zh) * 2021-07-29 2021-11-16 北京百度网讯科技有限公司 编辑处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677207A (zh) * 2014-11-17 2016-06-15 浪潮乐金数字移动通信有限公司 智能手机输入信息的编辑方法及装置
CN109891402A (zh) * 2016-10-28 2019-06-14 微软技术许可有限责任公司 可撤销和在线模式转换
CN110389796A (zh) * 2019-07-01 2019-10-29 北京字节跳动网络技术有限公司 编辑操作处理方法、装置及电子设备
CN112001984A (zh) * 2020-06-30 2020-11-27 深圳点猫科技有限公司 一种基于地形编辑器的快照式历史记录操作方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677207A (zh) * 2014-11-17 2016-06-15 浪潮乐金数字移动通信有限公司 智能手机输入信息的编辑方法及装置
CN109891402A (zh) * 2016-10-28 2019-06-14 微软技术许可有限责任公司 可撤销和在线模式转换
CN110389796A (zh) * 2019-07-01 2019-10-29 北京字节跳动网络技术有限公司 编辑操作处理方法、装置及电子设备
CN112001984A (zh) * 2020-06-30 2020-11-27 深圳点猫科技有限公司 一种基于地形编辑器的快照式历史记录操作方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535168A (zh) * 2021-07-13 2021-10-22 杭州安恒信息技术股份有限公司 一种基于json的前端撤销方法及相关装置
CN113656038A (zh) * 2021-07-29 2021-11-16 北京百度网讯科技有限公司 编辑处理方法及装置
CN113656038B (zh) * 2021-07-29 2023-08-01 北京百度网讯科技有限公司 编辑处理方法及装置

Also Published As

Publication number Publication date
CN113065317B (zh) 2024-03-12

Similar Documents

Publication Publication Date Title
US11681866B2 (en) Device, method, and graphical user interface for editing screenshot images
US11157577B2 (en) Method for searching and device thereof
US10409418B2 (en) Electronic device operating according to pressure state of touch input and method thereof
US10089056B2 (en) Device, method, and graphical user interface for collaborative editing in documents
US10331321B2 (en) Multiple device configuration application
US8773370B2 (en) Table editing systems with gesture-based insertion and deletion of columns and rows
US20190050141A1 (en) User interface for editing a value in place
CN109445657B (zh) 文档编辑方法和装置
US9274704B2 (en) Electronic apparatus, method and storage medium
US10627921B2 (en) Pen tablet, handwritten data recording device, handwritten data drawing method, and handwritten data synthesis method
US20140075302A1 (en) Electronic apparatus and handwritten document processing method
US20120030567A1 (en) System with contextual dashboard and dropboard features
US11436403B2 (en) Online document commenting method and apparatus
US20150346919A1 (en) Device, Method, and Graphical User Interface for Navigating a Content Hierarchy
US10049114B2 (en) Electronic device, method and storage medium
US8082513B2 (en) Method and system for saving images from web pages
US11144196B2 (en) Operating visual user interface controls with ink commands
US11314826B2 (en) Method for searching and device thereof
CN113065317B (zh) 编辑内容的恢复方法、装置、电子设备、介质及产品
US20130301921A1 (en) Electronic device and handwritten document search method
WO2016130344A1 (en) Supporting digital ink in markup language documents
US20150154443A1 (en) Electronic device and method for processing handwritten document
CN112269523B (zh) 对象编辑处理方法、装置及电子设备
US20120124068A1 (en) Document management apparatus and method for controlling same
US20150098653A1 (en) Method, electronic device and storage medium

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