CN112632918A - 文档编辑方法、装置、终端及存储介质 - Google Patents
文档编辑方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN112632918A CN112632918A CN201910974631.6A CN201910974631A CN112632918A CN 112632918 A CN112632918 A CN 112632918A CN 201910974631 A CN201910974631 A CN 201910974631A CN 112632918 A CN112632918 A CN 112632918A
- Authority
- CN
- China
- Prior art keywords
- data processing
- operation information
- processing instruction
- editing operation
- editing
- 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
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本申请公开了一种文档编辑方法、装置、终端及存储介质,属于网络技术领域。本申请实施例提供的方法,通过将用户的编辑操作信息转化为对目标文档中具体数据的数据处理指令,当重复执行时,直接执行数据处理指令,而无需重复执行复杂的逻辑,对编辑操作信息进行处理,文档编辑效率较高。该转化过程中基于编辑操作信息转化得到了与其对应的第一数据处理指令逆向的第二数据处理指令,从而在后续用户撤销本次编辑操作时直接执行,无需根据撤销操作信息重新分析如何对数据进行逆向处理,以恢复原有状态,提高了文档编辑的效率。且将转化后的数据处理指令与目标文档中数据相关,与用户无关,如果有多个用户的用户操作,则不会造成影响,准确率高。
Description
技术领域
本申请涉及网络技术领域,特别涉及一种文档编辑方法、装置、终端及存储介质。
背景技术
随着网络技术的发展,人们也可以通过网络,线上对文档进行编辑,例如,在线表格。其中,在线表格还可以提供多人线上编辑的功能,甚至可以支持多个用户同时对同一个表格进行协作编辑,以提高编辑效率。但用户在编辑文档时会经常进行修改,例如,会反复进行撤销和重做的操作。
目前,文档编辑方法通常是获取到用户对文档的编辑操作信息时,基于该编辑操作信息对文档中的数据进行处理,并将编辑操作信息添加到文档编辑栈中,在基于该编辑操作信息对文档中的数据进行处理时需要通过复杂的逻辑,分析该编辑操作信息对该文档中的那些数据的影响,从而对数据进行处理。在用户反复进行撤销和重做的操作时,则需要重复执行大量的复杂逻辑。例如,如图1所示,将编辑操作信息称为action,将撤销称为undo,将重做称为redo,每次撤销或重做时,入栈出栈需要重复执行大量的复杂逻辑。
上述文档编辑方法对于每次撤销或重做的操作均需要执行一次复杂逻辑,在反复操作时,需要重复执行大量的复杂逻辑,文档编辑效率低。且上述方法以一个用户的用户操作为基准,如果有其他用户同时对该文档的编辑操作信息时,该用户进行撤销或重做时,可能会影响到其他用户的用户操作,上述文档编辑方法的准确率也比较低。
发明内容
本申请实施例提供了一种文档编辑方法、装置、终端及存储介质,可以解决相关技术中文档编辑效率低和准确率低的问题。所述技术方案如下:
一方面,提供了一种文档编辑方法,所述方法包括:
获取用户对目标文档的第一编辑操作信息,所述第一编辑操作信息用于表示用户对所述目标文档的第一编辑操作;
基于所述第一编辑操作信息,对所述目标文档中的数据进行处理;
对所述第一编辑操作信息进行转化,得到与所述第一编辑操作信息对应的第一数据处理指令逆向的至少一个第二数据处理指令,所述第一数据处理指令和所述第二数据处理指令用于表示对所述目标文档中数据的处理方式;
当获取到用户对所述目标文档的第一编辑操作的撤销操作信息时,执行所述第一编辑操作信息对应的至少一个第二数据处理指令。
一方面,提供了一种文档编辑装置,所述装置包括:
获取模块,用于获取用户对目标文档的第一编辑操作信息,所述第一编辑操作信息用于表示用户对所述目标文档的第一编辑操作;
执行模块,用于基于所述第一编辑操作信息,对所述目标文档中的数据进行处理;
转化模块,用于对所述第一编辑操作信息进行转化,得到与所述第一编辑操作信息对应的第一数据处理指令逆向的至少一个第二数据处理指令,所述第一数据处理指令和所述第二数据处理指令用于表示对所述目标文档中数据的处理方式;
所述执行模块,还用于当获取到用户对所述目标文档的第一编辑操作的撤销操作信息时,执行所述第一编辑操作信息对应的至少一个第二数据处理指令。
在一种可能实现方式中,所述转化模块用于:
对所述第一编辑操作信息进行转化,得到所述第一编辑操作信息对应的对所述目标文档中数据的至少一个第一数据处理指令;
对所述至少一个第一数据处理指令进行转置,得到所述至少一个第二数据处理指令。
在一种可能实现方式中,所述转化模块用于:
根据所述第一编辑操作信息的指令内容,确定所述第一编辑操作信息所指示的所述目标文档中的数据;
将所述第一编辑操作信息拆分为对所述数据进行增加或删减、格式设置或内容设置的至少一个第一数据处理指令。
在一种可能实现方式中,所述装置还包括:
第一存储模块,用于存储所述至少一个第一数据处理指令;
所述执行模块还用于当获取到用户对所述目标文档的所述第一编辑操作的重做操作信息时,执行所述第一编辑操作信息对应的所述至少一个第一数据处理指令。
在一种可能实现方式中,所述第一存储模块用于将所述至少一个第一数据处理指令存入文档编辑栈中;
所述执行模块用于从所述文档编辑栈中读取并执行所述第一编辑操作信息对应的所述至少一个第一数据处理指令。
在一种可能实现方式中,所述装置还包括:
第二存储模块,用于将所述至少一个第二数据处理指令存入文档编辑栈中;
所述执行模块用于从所述文档编辑栈中读取并执行所述第一编辑操作信息对应的所述至少一个第二数据处理指令。
在一种可能实现方式中,所述文档编辑栈包括撤销栈和重做栈,所述撤销栈用于存储至少一个第一数据处理指令,所述重做栈用于存储所述至少一个第二数据处理指令;所述文档编辑栈的数据读取方式为后入先出;所述至少一个第一数据处理指令和至少一个第二数据处理指令为变异数组。
在一种可能实现方式中,所述第一编辑操作信息和所述撤销操作信息用于表示本地用户对所述目标文档的编辑操作;
所述转化模块还用于当获取到本地用户对目标文档的第一编辑操作信息的同时,接收到任一其他用户对所述目标文档的第二编辑操作信息时,对所述第二编辑操作信息进行转化,得到所述第二编辑操作信息对应的对所述目标文档中数据的至少一个第三数据处理指令;
其中,所述第二编辑操作信息用于表示所述任一其他用户对所述目标文档的第二编辑操作,所述第三数据处理指令用于表示对所述目标文档中数据的处理方式。
在一种可能实现方式中,所述执行模块还用于:
当获取到用户对所述目标文档的第一编辑操作的撤销操作信息时,对所述至少一个第三数据处理指令以及所述第一编辑操作信息对应的至少一个第二数据处理指令进行冲突处理;
执行处理后的所述第一编辑操作信息对应的至少一个第二数据处理指令。
在一种可能实现方式中,所述装置还包括:
第三存储模块,用于将所述至少一个第三数据处理指令存入文档编辑栈中;
所述执行模块还用于当获取到用户对所述目标文档的第一编辑操作的撤销操作信息,且所述第一编辑操作信息对应的至少一个第二数据处理指令的入栈时间在所述至少一个第三数据处理指令的入栈时间之前时,对所述至少一个第三数据处理指令以及所述第一编辑操作信息对应的至少一个第二数据处理指令进行冲突处理。
在一种可能实现方式中,所述执行模块还用于:
当获取到用户对所述目标文档的第一编辑操作的重做操作信息,且所述第一编辑操作信息对应的至少一个第一数据处理指令的入栈时间在所述至少一个第三数据处理指令的入栈时间之前时,对所述至少一个第三数据处理指令以及所述第一编辑操作信息对应的至少一个第一数据处理指令进行冲突处理;
执行处理后的所述第一编辑操作信息对应的至少一个第一数据处理指令。
在一种可能实现方式中,所述执行模块用于当所述第一编辑操作信息对应的至少一个第二数据处理指令与所述至少一个第三数据处理指令所指示的数据存在重叠区域时,根据各个数据处理指令所指示的对同一数据的处理方式以及各个数据处理指令的优先级,对各个数据处理指令中对所述同一数据的增加或删减、格式设置或内容设置的指令内容进行更新。
一方面,提供了一种终端,所述终端包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述程序代码由所述一个或多个处理器加载并执行以实现所述文档编辑方法所执行的操作。
一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现所述文档编辑方法所执行的操作。
本申请实施例提供的文档编辑方法,一方面,通过将用户的编辑操作信息转化为对目标文档中具体数据的数据处理指令,当重复执行时,直接执行数据处理指令,而无需重复执行复杂的逻辑,对编辑操作信息进行处理,文档编辑效率较高。且该转化过程中基于编辑操作信息转化得到了与其对应的第一数据处理指令逆向的第二数据处理指令,从而在后续用户撤销本次编辑操作时直接执行,而无需根据撤销操作信息重新分析如何对数据进行逆向处理,以恢复原有状态,有效提高了文档编辑的效率。另一方面,将转化后的数据处理指令与目标文档中数据相关,与用户无关,如果有多个用户的用户操作,则不会造成影响,准确率高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是相关技术提供的一种文档编辑方法的流程图;
图2是本申请实施例提供的一种文档编辑方法的实施环境;
图3是本申请实施例提供的一种文档编辑方法的流程图;
图4是本申请实施例提供的一种编辑操作信息的转化示意图;
图5是本申请实施例提供的一种终端显示界面的示意图;
图6是本申请实施例提供的一种冲突处理过程的示意图;
图7是相关技术提供的一种冲突处理过程的示意图;
图8是本申请实施例提供的一种文档编辑方法的流程图;
图9是本申请实施例提供的一种文档编辑装置的结构示意图;
图10是本发明实施例提供的一种终端的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图2是本申请实施例提供的一种文档编辑方法的实施环境,参见图2,该实施环境中可以包括多个终端201和服务器202,该多个终端201可以分别基于网络连接与服务器202进行数据交互。
在本申请实施例中,该多个终端201上登录的用户可以正在同时访问服务器202中的一个文档,每个终端201可以向服务器202发送该终端201上登录的用户对一个文档的编辑操作信息,服务器202可以将该编辑操作信息转发给访问该文档的其它用户所在终端201。
例如,该文档可以为表格,多个用户可以访问该表格,该服务器202上可以存储有该表格,该多个用户所在的多个终端201可以通过网络连接访问该服务器202中的该表格,该多个用户可以同时对该表格进行编辑。该多个终端201可以向服务器202发送编辑操作信息,该服务器202可以将一个终端201发送的编辑操作信息发送给其他终端201,从而实现该表格中的数据同步。
需要说明的是,该多个终端201可以通过安装的客户端对该服务器202进行访问,也可以通过对门户网站对该服务器202进行访问,本申请实施例对此不作限定。
该文档编辑方法应用于终端,该终端可以为上述多个终端201中的一个终端201,下述均以该终端上当前登录的用户为本地用户,该本地用户之外的用户为其他用户为例进行说明。在本申请实施例中,多个用户可以同时对同一个文档进行编辑,其中,对于某个终端来说,该终端上登录的本地用户正在访问一个文档,且其他终端上登录的其他用户也在访问该文档,并正在对该文档中区域进行编辑。
在本申请实施例中,本地用户所在终端可以将用户进行操作触发的编辑操作信息转化为对目标文档中数据的数据处理指令,该数据处理指令可以包括正向的和逆向的,分别用于在后续用户进行重做和撤销时直接执行,以省去对编辑操作信息的分析过程,提高效率。且将编辑操作信息转化为对目标文档中数据的数据处理指令,消除了用户关系,转化后的数据处理指令不再关注是哪个用户进行的操作,而是关注如何对数据进行处理,从而在多个用户同时对目标文档进行编辑,本地用户进行重做或撤销时,将本地用户的数据处理指令与其他用户的数据处理指令进行冲突处理,即可保证数据处理符合本地用户的预期,并极大限度的保留其他用户的操作,文档编辑的准确率高。
当然,终端也可以不全部执行上述步骤,而是仅执行部分步骤,以实现相应的功能即可,例如,仅对撤销操作执行相关步骤,本申请实施例对此不作限定。在此仅为对本申请实施例的简要介绍,具体对于本地用户对目标文档进行编辑操作的具体处理流程可以参见下述图3所示实施例。多个用户同时对目标文档进行编辑操作时的具体处理流程可以参见下述8所示实施例。
下面通过图3所示实施例对本地用户对目标文档进行编辑操作时终端对用户的编辑操作触发的编辑操作信息进行处理的具体流程进行说明。图3是本申请实施例提供的一种文档编辑方法的流程图,参见图3,该文档编辑方法可以包括以下步骤:
301、终端获取用户对目标文档的第一编辑操作信息。
在本申请实施例中,用户可以在终端打开目标文档,对该目标文档进行第一编辑操作,终端可以获取到第一编辑操作信息。终端获取到该第一编辑操作信息后,可以基于该第一编辑操作信息,确定如何对目标文档中的数据进行处理。
其中,该第一编辑操作信息用于表示用户对该目标文档的第一编辑操作。例如,用户在目标文档中进行了插入行操作,则终端可以获取到用户在第几行的上或下进行了插入行操作,具体是插入几行等第一编辑操作信息。
在一种可能实现方式中,终端在获取到用户对目标文档的操作信息时,可以判断该操作信息是否为第一编辑操作信息,如果是,则执行下述步骤302至步骤307,如果否,则该操作信息可能是撤销操作或重做操作的信息,则可以根据该操作信息,执行下述步骤306或307。
在一种可能实现方式中,本地用户和其他用户可以对目标文档进行编辑,该目标文档可以为在线共享文档,也可以由本地用户所在终端本地存储,但基于共享软件,其他用户所在终端也可以对该目标文档进行编辑,当然,也可以由其他用户所在终端本地存储,但基于共享软件,本地用户所在终端也可以对该目标文档进行编辑。
例如,以该目标文档为表格为例,本地用户在第一行后插入四行,其他用户也在对该目标文档进行编辑,本地用户所在终端可以将本地用户的第一编辑操作信息广播给其他用户所在终端,从而该其他用户所在终端可以基于该第一编辑操作信息,对目标文档进行处理,从而实现数据同步和更新。同样的,该其他用户也可以进行上述同理的操作,本申请实施例对此不作限定。
302、终端基于该第一编辑操作信息,对该目标文档中的数据进行处理。
终端获取到第一编辑操作信息后,可以根据该第一编辑操作信息对数据进行处理,以实现用户对该目标文档中的数据进行的编辑操作。
在一种可能实现方式中,该第一编辑操作信息为用户对目标文档进行的第一编辑操作的信息,终端可以分析该第一编辑操作信息所表示的为对目标文档中哪些数据进行处理,并分析对这些数据进行哪些处理。具体地,终端可以对该第一编辑操作信息进行转化,得到该第一编辑操作信息对应的至少一个第一数据处理指令,该第一数据处理指令用于表示对该目标文档中数据的处理方式。终端转化得到至少一个第一数据处理指令后,可以执行该第一数据处理指令,从而实现对目标文档中的数据进行处理。
其中,该第一数据处理指令与该第一编辑操作信息所指示的对目标文档中的数据处理方式相同,可以理解地,该第一编辑操作信息的指令内容更侧重哪个用户对目标文档进行了哪样的操作,而第一数据处理指令更侧重于对目标文档中的哪些数据进行哪些处理。
例如,该第一编辑操作信息为插入行操作,终端可以将其转化为插入行的数据处理指令、设置单元格数据的数据处理指令或合并单元格的数据处理指令,并在该目标文档中插入行、设置单元格数据和对合并单元格数据进行处理。在此仅为一种示例说明,并不对具体编辑操作信息的指令内容造成限定。
303、终端对该第一编辑操作信息进行转化,得到该第一编辑操作信息对应的对该目标文档中数据的至少一个第一数据处理指令。
终端获取到第一编辑操作信息后,还可以将该第一编辑操作信息转化为对目标文档中数据的数据处理指令,这样转化后的数据处理指令与目标文档中数据相关,与用户无关,后续再重复执行这样的用户操作时,可以直接执行转化后的数据处理指令,而无需再重复进行该步骤303所示的转化步骤,也即是无需重新分析编辑操作信息为对目标文档中哪些数据进行的哪些处理,能够有效提高文档编辑效率。
具体地,对于第一编辑操作信息,可以转化为两种数据处理指令:第一数据处理指令和第二数据处理指令。其中,第一数据处理指令与第一编辑操作信息所指示对目标文档中的数据的数据处理过程相同,也即是,基于该第一编辑操作信息对目标文档进行处理时,执行第一数据处理指令即可,该过程已在上述步骤302中进行了说明。第二数据处理指令与第一数据处理指令逆向,也即是,两种数据处理指令对数据的处理方式相反,如果终端执行结束第一数据处理指令后,再执行第二数据处理指令,可以将目标文档恢复到执行第一数据处理指令之前的状态。
其中,该终端对第一编辑操作信息进行转化得到至少一个第一数据处理指令的过程可以理解为:终端对第一编辑操作信息进行分析处理,确定该第一编辑操作信息为对目标文档中哪些数据进行哪些处理步骤。具体地,终端可以根据该第一编辑操作信息的指令内容,确定该第一编辑操作信息所指示的该目标文档中的数据,将该第一编辑操作信息拆分为对该数据进行增加或删减、格式设置或内容设置的至少一个第一数据处理指令。
例如,以该目标文档为在线表格为例,该第一编辑操作信息为插入行操作,终端可以将其转化为插入行的数据处理指令、设置单元格数据的数据处理指令,如果插入行的格式与前面某行的格式一致,前面某行包括合并单元格,则还可以转化得到合并单元格的数据处理指令,当然,该第一编辑操作信息还可能转化为其他数据处理指令,在此仅为一种示例说明,并不对具体编辑操作信息的内容造成限定。
需要说明的是,上述仅以终端进行了步骤302后,又进行了步骤303为例进行说明,在该过程中,步骤302和步骤303中的转化步骤为分开执行的两个步骤,二者可以同步执行,也可以不同步执行,上述步骤302所示的至少一个第一数据处理指令用于实现第一编辑操作信息的逻辑,而步骤303所示的至少一个第一数据处理指令则用于后续用户进行重做操作时直接执行。在一种可能实现方式中,上述步骤303可以为该步骤302中的子步骤,也即是,该步骤303可以与上述步骤302所示的转化步骤为同一步骤,终端可以执行步骤303,再执行该至少一个第一数据处理指令从而实现上述步骤302,且该至少一个第一数据处理指令备份或直接存储起来,以备后续重做操作时执行,本申请实施例对具体采用哪种实现方式不作限定。
304、终端对该至少一个第一数据处理指令进行转置,得到该至少一个第二数据处理指令,该至少一个第二数据处理指令与该至少一个第一数据处理指令逆向。
终端在得到至少一个第一数据处理指令后,可以对上述至少一个第一数据处理指令进行转置,得到逆向的数据处理指令,也即是,至少一个第二数据处理指令,以备后续撤销第一编辑操作时直接执行,从而将文档数据恢复为执行至少一个第一数据处理指令之前的状态,而无需根据用户的撤销操作,再进行上述将撤销操作信息进行转化并执行相应指令的过程,以提高数据处理效率。
两种数据处理指令逆向,对数据的处理方式相反,这样如果需要撤回该第一编辑操作,则可以执行至少一个第二数据处理指令,如果重做该第一编辑操作,则可以执行至少一个第一数据处理指令。例如,如果终端执行结束第一数据处理指令后,用户进行了撤销操作,终端执行第二数据处理指令,可以将目标文档恢复到执行第一数据处理指令之前的状态。例如,第一数据处理指令为删除行,第二数据处理指令则为增加行。
需要说明的是,上述第二数据处理指令的数量可以与第一数据处理指令的数量相同,也可以不同。例如,终端可以对每个第一数据处理指令进行转置,得到一个第二数据处理指令,也可以对多个第一数据处理指令进行转置,得到一个第二数据处理指令,本申请实施例对此不作限定。
在一个具体的可能实施例中,该至少一个第一数据处理指令和至少一个第二数据处理指令可以为变异(Mutation)数组。例如,如图4所示,可以称上述编辑操作信息为action。可以将编辑操作信息(action)转化为数据处理指令(在此称为变异数组(mutation)),一个action可以对应多个mutation,该多个mutation即为第一数据处理指令,对每个mutation进行转置(invert),可以得到逆向的mutation,该逆向的mutation即为第二数据处理指令。
该步骤303和步骤304为终端对该第一编辑操作信息进行转化,得到与该第一编辑操作信息对应的第一数据处理指令逆向的至少一个第二数据处理指令的过程,在该过程中,终端可以得到至少一个第二数据处理指令,也可以得到至少一个第一数据处理指令,其中,该至少一个第二数据处理指令可以用于后续用户进行撤销操作时执行,而至少一个第一数据处理指令可以用于后续用户进行重做操作时执行。上述以终端得到了两种数据处理指令为例进行了说明,在一种可能实现方式中,终端也可以仅获取得到至少一个第二数据处理指令,而对第一数据处理指令不再进行后续处理,本申请实施例对此不作限定。
305、终端将该至少一个第一数据处理指令和该至少一个第二数据处理指令存入文档编辑栈中。
终端在得到转化后的数据处理指令后,可以将数据处理指令存入文档编辑栈中,如果后续有重复的编辑操作信息,则可以直接从该文档编辑栈中读取并执行,而无需再重新执行上述步骤303和304,进而提高文档编辑效率。例如,如图4所示,在对第一编辑操作信息(action)进行转化后,将转化后的数据处理指令mutation存入文档编辑栈,例如,撤销(undo)栈。
在此图例中仅以undo栈为例进行说明,在一种可能实现方式中,该文档编辑栈包括撤销栈和重做栈,该撤销栈和重做栈用于存储和根据撤销操作信息或重做操作信息执行该至少一个第二数据处理指令和至少一个第一数据处理指令中的一项,在一种可能实现方式中,可以将该正向的mutation和逆向的mutation均存入撤销(undo)栈中,在后续根据撤销操作信息或重做操作信息,来确定将两种mutation从一个栈中读取出再存入另一个栈中,具体可以参见下述步骤306和步骤307。在另一种可能实现方式中,该撤销栈用于存储该至少一个第二数据处理指令,重做栈用于存储至少一个第一数据处理指令。
当然,上述过程还可以有其他实现方式,本申请实施例对此不作限定。例如,该图4中可以将正向的mutation存入重做(redo)栈,将逆向的mutation存入undo栈。在上述步骤302和步骤303的一种实现方式中,将该正向的mutation和逆向的mutation存入undo栈中后,终端可以执行该正向的mutation,从而将正向的mutation从undo栈中出栈,并存入redo栈中。进而后续根据撤销操作信息或重做操作信息,确定执行哪一个栈中的数据处理指令。
该终端将至少一个第一数据处理指令存入文档编辑栈的过程为一种存储该至少一个第一数据处理指令的方式,终端也可以通过其他方式存储该至少一个第一数据处理指令,本申请实施例对此不作限定。
在该步骤305中示出了将至少一个第一数据处理指令和至少一个第二数据处理指令均存入文档编辑栈中为例进行了说明,在一种可能实现方式中,终端也可以仅将至少一个第二数据处理指令存入文档编辑栈中,以执行步骤306,而不执行步骤307,本申请实施例对此不作限定。
306、当获取到用户对该目标文档的第一编辑操作的撤销操作信息时,终端从该文档编辑栈中读取并执行该第一编辑操作信息对应的至少一个第二数据处理指令。
用户进行了上述编辑操作后,还可以继续对该目标文档进行编辑操作,如果之前的编辑操作效果并非该用户所预期的,则可能会进行撤销操作,而撤销后,该用户还可能再想要恢复上述编辑操作,从而可以进行重做操作。
例如,如图5所示,在显示目标文档的界面中可以显示有撤销控件和重做控件,当用户对该撤销控件和重做控件进行触发操作时,终端可以获取撤销操作信息和重做操作信息。对撤销控件的触发操作时终端可以获取对第一编辑操作的撤销操作信息,对重做控件的触发操作时终端可以获取对第一编辑操作的重做操作信息。
当获取到撤销操作信息时,终端无需重新对该撤销操作信息进行分析,从而转化为数据处理指令等,而是直接从该文档编辑栈中读取并执行之前已经转化好的至少一个第二数据处理指令即可,这样可以省去很多分析过程,以提高文档编辑效率。
该步骤306为当获取到用户对该目标文档的第一编辑操作的撤销操作信息时,终端执行该第一编辑操作信息对应的至少一个第二数据处理指令的过程,上述步骤305和步骤306中,终端通过文档编辑栈的方式存储和读取第二数据处理指令,在一个具体的可能实施例中,终端也可以通过其他方式存储并读取,例如,将其存入缓存区中,需要时可以从缓存区中提取,本申请实施例对此不作限定。
307、当获取到用户对该目标文档的第一编辑操作的重做操作信息时,终端从该文档编辑栈中读取并执行该第一编辑操作信息对应的该至少一个第一数据处理指令。
除了上述撤销操作,用户在撤销了之前的第一编辑操作后,可能还会想要再恢复上述第一编辑操作,从而进行重做操作,终端可以获取重做操作信息,当获取到该重做操作信息时,终端也可以无需重复执行逻辑来对重做操作信息进行分析转化,而是直接从文档编辑栈中读取并执行之前存入的第一数据处理指令即可。
该步骤307为当获取到用户对该目标文档的该第一编辑操作的重做操作信息时,执行该第一编辑操作信息对应的该至少一个第一数据处理指令的过程,同理地,该终端也可以通过其他方式存储和读取该至少一个第一数据处理指令。
在一种可能实现方式中,该文档编辑栈的数据读取方式为后入先出。后添加到该文档编辑栈的编辑操作信息可以先出栈并执行。这样用户对目标文档进行了编辑操作,从而终端将转化得到的至少一个第一数据处理指令和至少一个第二数据处理指令存入文档编辑栈中,如果用户继续进行了其他编辑操作,则终端仍可以继续将转化得到的数据处理指令存入文档编辑栈中,如果用户进行了撤销操作,则终端可以将刚放入文档编辑栈中的至少一个第二数据处理指令出栈并执行,这样可以撤销用户刚进行的那次编辑操作,如果用户继续撤销,则可以再执行之前放入的第二数据处理指令,从而撤销之前的编辑操作。
例如,以一个具体示例对上述撤销和重做过程数据处理指令在文档编辑栈中的变化情况进行说明。在上述步骤305中,终端可以将正向的mutation(第一数据处理指令)和逆向的mutation(第二数据处理指令)存入撤销(undo)栈,在步骤306中,终端根据撤操作指令,将该正向的mutation和逆向的mutation可以从undo栈中出栈,执行逆向的mutation,并将该正向的mutation和逆向的mutation均存入重做(redo)栈。用户再进行重做操作时,终端可以根据重做操作信息,将该正向的mutation和逆向的mutation从redo栈中出栈,执行正向的mutation,再将正向的mutation和逆向的mutation存入undo栈。如果用户反复进行撤销和重做,终端则可以反复执行上述过程。可以理解地,在将该正向的mutation和逆向的mutation存入redo栈时,可以理解两个mutation正向和逆向颠倒,该正向的mutation可以被理解为是一个逆向的mutation,逆向的mutation可以被理解为一个正向的mutation,这样针对两个栈,每次出栈时执行的均为逆向的mutation。
在一个具体的可能实施例中,该第一编辑操作信息和该撤销操作信息用于表示本地用户对该目标文档的编辑操作,考虑到其他用户也可以对该目标文档进行处理,对于多个用户的编辑操作,终端需要进行冲突处理,以保证两个用户进行的编辑操作均符合预期。
其他用户进行第二编辑操作时,终端可以获取到第二编辑操作信息,该第二编辑操作信息用于表示该任一其他用户对该目标文档的第二编辑操作。对于其他用户的第二编辑操作信息,终端也可以将用户的编辑操作信息转化为对目标文档中具体数据的数据处理指令,在执行本地用户的数据处理指令时,可以与该其他用户的数据处理指令进行冲突处理,从而在保证本地用户的操作符合预期的同时,保留其他用户的操作。
具体地,当获取到本地用户对目标文档的第一编辑操作信息的同时,接收到任一其他用户对该目标文档的第二编辑操作信息时,终端可以对该第二编辑操作信息进行转化,得到该第二编辑操作信息对应的对该目标文档中数据的至少一个第三数据处理指令。其中,该第三数据处理指令用于表示对该目标文档中数据的处理方式。当然,终端也可以基于该第二编辑操作,对目标文档中的数据进行处理,该处理过程与上述步骤302同理。具体地,终端可以执行该至少一个第三数据处理指令,以实现其他用户对目标文档的编辑情况,实现数据同步。
其中,第二编辑操作信息的转化过程与步骤303中第一编辑操作信息的转化过程同理,终端可以根据该第二编辑操作信息的指令内容,确定该第二编辑操作信息所指示的该目标文档中的数据,将该第二编辑操作信息拆分为对该数据进行增加或删减、格式设置或内容设置的至少一个第三数据处理指令。
在多个用户对目标文档同时进行编辑操作,而本地用户进行了撤销操作时,终端则需要对将要执行的数据处理指令与其他用户的数据处理指令进行冲突处理,从而保证该多个用户各自的操作均在文档中得以实现,互不影响。在步骤306中,当获取到用户对该目标文档的第一编辑操作的撤销操作信息时,终端可以对该至少一个第三数据处理指令以及该至少一个第二数据处理指令进行冲突处理,从而执行处理后的该第一编辑操作信息对应的至少一个第二数据处理指令。
其中,终端对两个用户的数据处理指令进行处理的过程可以为分析双方操作是否有冲突,如果有,则需要对二者的数据处理指令进行更新,从而在满足本地用户的操作的同时,也保留其他用户的操作。具体可以为:当该第一编辑操作信息对应的至少一个第二数据处理指令与该至少一个第三数据处理指令所指示的数据存在重叠区域时,终端根据各个数据处理指令所指示的对同一数据的处理方式以及各个数据处理指令的优先级,对各个数据处理指令中对该同一数据的增加或删减、格式设置或内容设置的指令内容进行更新。
在此仅以撤销操作信息为例,如果获取到重做操作信息,终端也可以对多个用户进行的数据处理指令进行冲突处理。具体地,当获取到用户对该目标文档的第一编辑操作的重做操作信息,且该第一编辑操作信息对应的至少一个第一数据处理指令的入栈时间在该至少一个第三数据处理指令的入栈时间之前时,终端对该至少一个第三数据处理指令以及该第一编辑操作信息对应的至少一个第一数据处理指令进行冲突处理,执行处理后的该第一编辑操作信息对应的至少一个第一数据处理指令。具体冲突处理过程与上述过程同理,在此不多做赘述。
在一种可能实现方式中,终端也可以将该至少一个第三数据处理指令存入文档编辑栈中,从而本地用户进行撤销操作时的处理过程也即是:当获取到用户对该目标文档的第一编辑操作的撤销操作信息,且该第一编辑操作信息对应的至少一个第二数据处理指令的入栈时间在该至少一个第三数据处理指令的入栈时间之前时,终端可以对该至少一个第三数据处理指令以及该第一编辑操作信息对应的至少一个第二数据处理指令进行冲突处理。获取到重做操作信息时同理,在此不多做赘述。
例如,如图6所示,可以称第二编辑操作信息为协同变异数组(mutation),将第一编辑操作信息转化得到的第一数据处理指令和第二数据处理指令称为本地mutation,其中,mutation为变异数组,终端也可以将该协同mutation存入文档编辑栈中,例如,在此以undo栈为例进行说明,如果获取到撤销操作信息,终端可以执行该undo栈中的本地mutation,在执行过程中,终端可以将该本地mutation与上面的协同mutation进行冲突处理,也即是转换(transform)的过程,从而对协同mutation和本地mutation进行了更新,更新后的本地mutation在该协同mutation上面,即可出栈并执行。该协同mutation下面的其它本地mutation的处理过程与上述过程同理,在此不一一说明,该本地mutation的出栈过程可以形象地看做一个“冒泡”的过程。需要说明的是,该undo栈后入先出,在做该撤销操作信息的出栈过程时,可以从栈顶开始的第一个撤销操作信息开始,从而一层一层的“冒泡”,直到到达栈顶即可出栈。该协同mutation可以入栈,但不会出栈,且可能本地用户一直没有使用撤销和重做功能,则该协同mutation入栈时可以不进行冲突处理,从而不作无用功。
而在相关技术中,其他用户对文档的编辑操作不入栈,而是将其他用户对文档的编辑操作与栈内的所有编辑操作进行冲突处理,从而更新栈内的编辑操作和该其他用户对文档的编辑操作。例如,如图7所示,在本地用户进行撤销或重做操作时,则需要重新执行逻辑,对撤销操作或重做操作action与协同mutation进行冲突处理,这样则可能会导致该其他用户对该文档的编辑操作被本地用户的撤销操作给消除掉,从而使得最终的处理结果并不符合两个用户的预期。比如,用户A在第一行下面插入了4行,用户B在第二行下面插入了1行,此时用户A进行撤销,因为冲突处理的关系,用户A会将之前插入的4行和B插入1行全部删除,此时协同Action应该被更新为空,这样B协同的操作对表格的影响已经没有了,但是如果不更新协同的Action,还是继续使用原有的Action进行后续的冲突处理,可想而知,结果一定是不对的。
这样本申请通过将用户的编辑操作信息转化为对文档中具体数据的数据处理指令,去掉用户的关系,以文档中的数据为基准,且可以在撤销和重做时与其他用户的数据处理指令进行冲突处理,可以保证处理后的结果满足双方的需求,提高处理效率的同时,提高了数据处理的准确率。
本申请实施例提供的文档编辑方法,一方面,通过将用户的编辑操作信息转化为对目标文档中具体数据的数据处理指令,当重复执行时,直接执行数据处理指令,而无需重复执行复杂的逻辑,对编辑操作信息进行处理,文档编辑效率较高。且该转化过程中基于编辑操作信息转化得到了与其对应的第一数据处理指令逆向的第二数据处理指令,从而在后续用户撤销本次编辑操作时直接执行,而无需根据撤销操作信息重新分析如何对数据进行逆向处理,以恢复原有状态,有效提高了文档编辑的效率。另一方面,将转化后的数据处理指令与目标文档中数据相关,与用户无关,如果有多个用户的用户操作,则不会造成影响,准确率高。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
上述图3所示实施例详细说明了:本地用户进行第一编辑操作后,进行了撤销操作,撤销操作后,又进行了重做操作的过程中,终端根据用户的编辑操作信息、撤销操作信息以及重做操作信息进行数据处理的具体流程,上述文档编辑方法可以应用于本地文档,也可以应用于在线文档,也即是,上述目标文档可以仅支持本地用户的编辑操作,也可以支持多个用户同时进行的编辑操作。下面通过图8所示实施例对上述文档编辑方法应用于在线文档时,多个用户对目标文档进行了编辑操作,本次用户执行撤销操作或重做操作时终端所进行的处理流程进行详细说明。
图8是本申请实施例提供的一种文档编辑方法的流程图,参见图8,该方法包括:
801、终端获取本地用户对目标文档的第一编辑操作信息的同时,接收到任一其他用户对该目标文档的第二编辑操作信息。
在本申请实施例中,多个用户可以同时对目标文档进行编辑操作,终端可以根据多个用户的编辑操作,对目标文档中的数据进行处理。
在一种可能实现方式中,本地用户对目标文档进行第一编辑操作时,终端可以获取本地用户对目标文档的第一编辑操作信息,与此同时,其他用户对该目标文档进行了第二编辑操作,终端可以接收到服务器转发的其它用户的第二编辑操作信息。其中,第一编辑操作信息用于表示本地用户对目标文档的第一编辑操作,第二编辑操作信息用于表示该任一其他用户对该目标文档的第二编辑操作。
802、终端基于该第一编辑操作信息和第二编辑操作信息,对该目标文档中的数据进行处理。
该步骤802中终端基于第一编辑操作信息,对目标文档中的数据进行处理的过程与上述步骤302同理,终端可以对第一编辑操作信息进行转化,得到该第一编辑操作信息对应的至少一个第一数据处理指令,执行该至少一个第一数据处理指令,本申请实施例在此不作过多赘述。
终端基于第二编辑操作信息,对目标文档中的数据进行处理的过程也与上述步骤307所示的内容同理,终端也可以对第二编辑操作信息进行转化,得到该第二编辑操作信息对应的对该目标文档中数据的至少一个第三数据处理指令,执行该至少一个第三数据处理指令,本申请实施例在此不作过多赘述。
在后续,对于该第一编辑操作信息,终端可以对其进行转化,得到正向和逆向的数据处理指令,从而便于本地用户进行撤销操作或重做操作时直接执行,转化过程参见下述步骤803和步骤804,对于第二编辑操作信息,终端可以对其进行转化,得到正向的数据处理指令,从而便于在本地用户进行撤销操作或重做操作时,与需要执行的第一编辑操作信息对应的数据处理指令进行冲突处理,以使得双方的编辑操作互不影响,转化过程可以参见下述步骤805。数据处理指令的存储步骤可以参见下述步骤806,撤销操作和重做操作时冲突处理过程可以参见下述步骤807至步骤810。
803、终端对该第一编辑操作信息进行转化,得到该第一编辑操作信息对应的对该目标文档中数据的至少一个第一数据处理指令。
804、终端对该至少一个第一数据处理指令进行转置,得到该至少一个第二数据处理指令,该至少一个第二数据处理指令与该至少一个第一数据处理指令逆向。
该步骤803和步骤804为对该第一编辑操作信息进行转化,得到与该第一编辑操作信息对应的第一数据处理指令逆向的至少一个第二数据处理指令的过程,该第一数据处理指令和该第二数据处理指令用于表示对该目标文档中数据的处理方式。对于第一编辑操作信息来说,第一数据处理指令用于表示正向的数据处理方式,以备重做第一编辑操作时使用,第二数据处理指令用于表示逆向的数据处理方式,以备撤销第一编辑操作时使用。该两个步骤与上述步骤303和步骤304同理,具体内容可以参见步骤303和步骤304所示内容,在此不多做赘述。
805、终端对该第二编辑操作信息进行转化,得到该第二编辑操作信息对应的对该目标文档中数据的至少一个第三数据处理指令。
该步骤805中对第二编辑操作信息的转化过程与上述步骤307中所示的内容同理,具体转化过程与上述步骤303或步骤803所示的对第一编辑操作信息的转化过程同理。具体地,终端可以根据该第二编辑操作信息的指令内容,确定该第二编辑操作信息所指示的该目标文档中的数据,将该第二编辑操作信息拆分为对该数据进行增加或删减、格式设置或内容设置的至少一个第三数据处理指令,本申请实施例在此不多做赘述。
806、终端将该至少一个第一数据处理指令、该至少一个第二数据处理指令和该至少一个第三数据处理指令存入文档编辑栈中。
该步骤806与上述步骤305同理,只是在该步骤806中,终端还将上述步骤805转化得到的至少一个第三数据处理指令存入了文档编辑栈中。
需要说明的是,终端将该三种数据处理指令存入文档编辑栈中时,可以按照目标顺序存入,例如,可以先将至少一个第一数据处理指令和该至少一个第二数据处理指令存入文档编辑栈中,再将该至少一个第三数据处理指令存入文档编辑栈中。该目标顺序可以由相关技术人员根据需求进行设置,本申请实施例对此不作限定。
807、当获取到用户对该目标文档的第一编辑操作的撤销操作信息,且该第一编辑操作信息对应的至少一个第二数据处理指令的入栈时间在该至少一个第三数据处理指令的入栈时间之前时,对该至少一个第三数据处理指令以及该第一编辑操作信息对应的至少一个第二数据处理指令进行冲突处理。
该文档编辑栈的数据读取方式为后入先出,该第一编辑操作信息对应的至少一个第二数据处理指令的入栈时间在该至少一个第三数据处理指令的入栈时间之前,如果执行该至少一个第二数据处理指令时,则需要对该至少一个第二数据处理指令和该至少一个第三数据处理指令进行冲突处理,再执行下述步骤808。
可以理解地,如果该第一编辑操作信息对应的至少一个第二数据处理指令的入栈时间在该至少一个第三数据处理指令的入栈时间之后,则在其他用户进行了编辑操作之后,才进行本地用户的编辑操作时,本地用户撤销操作时,直接执行逆向的数据处理方式来撤销本地用户的编辑操作,并不会对其他用户进行编辑操作造成影响,则无需进行冲突处理。
该步骤与807为当获取到用户对该目标文档的第一编辑操作的撤销操作信息时,终端对该至少一个第三数据处理指令以及该第一编辑操作信息对应的至少一个第二数据处理指令进行冲突处理的过程,上述以通过文档编辑栈对数据处理指令进行存储和读取的方式为例进行说明,该存储和读取步骤还可以采用其他方式,例如,存入缓存区和从缓存区中读取,本申请实施例对此不作限定。
具体地,上述冲突处理过程可以为:当该第一编辑操作信息对应的至少一个第二数据处理指令与该至少一个第三数据处理指令所指示的数据存在重叠区域时,终端根据各个数据处理指令所指示的对同一数据的处理方式以及各个数据处理指令的优先级,对各个数据处理指令中对该同一数据的增加或删减、格式设置或内容设置的指令内容进行更新。这样保证两个用户对该目标文档的编辑操作,在本地用户撤销自己的编辑操作时不会使得其他用户的编辑操作被消除或被更改,从而保证文档编辑的准确率。
808、终端执行处理后的该第一编辑操作信息对应的至少一个第二数据处理指令。
终端进行冲突处理后,则可以执行处理后的至少一个第二数据处理指令。在一种可能实现方式中,由于本地用户进行撤销操作或重做操作,并不会影响其他用户的编辑操作,因而,上述至少一个第三数据处理指令并不需要出栈。
809、当获取到用户对该目标文档的第一编辑操作的重做操作信息,且该第一编辑操作信息对应的至少一个第一数据处理指令的入栈时间在该至少一个第三数据处理指令的入栈时间之前时,终端对该至少一个第三数据处理指令以及该第一编辑操作信息对应的至少一个第一数据处理指令进行冲突处理。
该步骤809为当获取到用户对该目标文档的第一编辑操作的重做操作信息时,对该至少一个第三数据处理指令以及该第一编辑操作信息对应的至少一个第二数据处理指令进行冲突处理的过程,该冲突处理的过程具体可以参见上述步骤807,本申请实施例在此不过多赘述。
810、终端执行处理后的该第一编辑操作信息对应的至少一个第一数据处理指令。
该步骤809和步骤810与上述步骤807和步骤808所示的内容同理,只是读取和执行的数据处理指令不同,本申请实施例在此不多做赘述。
本申请实施例中,一方面,在多个用户同时对目标文档进行编辑操作时,通过将用户的编辑操作信息转化为对目标文档中具体数据的数据处理指令,当重复执行时,直接执行数据处理指令,而无需重复执行复杂的逻辑,对编辑操作信息进行处理,文档编辑效率较高。且该转化过程中基于编辑操作信息转化得到了与其对应的第一数据处理指令逆向的第二数据处理指令,从而在后续用户撤销本次编辑操作时直接执行,而无需根据撤销操作信息重新分析如何对数据进行逆向处理,以恢复原有状态,有效提高了文档编辑的效率,重做操作亦然。另一方面,转化后的数据处理指令与目标文档中数据相关,与用户无关,在重做和撤销需要执行数据处理指令时进行冲突处理,不会对彼此造成影响,准确率高。
图9是本申请实施例提供的一种文档编辑装置的结构示意图,参见图9,该装置包括:
获取模块901,用于获取用户对目标文档的第一编辑操作信息,该第一编辑操作信息用于表示用户对该目标文档的第一编辑操作;
执行模块902,用于基于该第一编辑操作信息,对该目标文档中的数据进行处理;
转化模块903,用于对该第一编辑操作信息进行转化,得到与该第一编辑操作信息对应的第一数据处理指令逆向的至少一个第二数据处理指令,该第一数据处理指令和该第二数据处理指令用于表示对该目标文档中数据的处理方式;
该执行模块902,还用于当获取到用户对该目标文档的第一编辑操作的撤销操作信息时,执行该第一编辑操作信息对应的至少一个第二数据处理指令。
在一种可能实现方式中,该转化模块903用于:
对该第一编辑操作信息进行转化,得到该第一编辑操作信息对应的对该目标文档中数据的至少一个第一数据处理指令;
对该至少一个第一数据处理指令进行转置,得到该至少一个第二数据处理指令。
在一种可能实现方式中,该转化模块903用于:
根据该第一编辑操作信息的指令内容,确定该第一编辑操作信息所指示的该目标文档中的数据;
将该第一编辑操作信息拆分为对该数据进行增加或删减、格式设置或内容设置的至少一个第一数据处理指令。
在一种可能实现方式中,该装置还包括:
第一存储模块,用于存储该至少一个第一数据处理指令;
该执行模块902还用于当获取到用户对该目标文档的该第一编辑操作的重做操作信息时,执行该第一编辑操作信息对应的该至少一个第一数据处理指令。
在一种可能实现方式中,该第一存储模块用于将该至少一个第一数据处理指令存入文档编辑栈中;
该执行模块902用于从该文档编辑栈中读取并执行该第一编辑操作信息对应的该至少一个第一数据处理指令。
在一种可能实现方式中,该装置还包括:
第二存储模块,用于将该至少一个第二数据处理指令存入文档编辑栈中;
该执行模块用于从该文档编辑栈中读取并执行该第一编辑操作信息对应的该至少一个第二数据处理指令。
在一种可能实现方式中,该文档编辑栈包括撤销栈和重做栈,该撤销栈用于存储至少一个第一数据处理指令,该重做栈用于存储该至少一个第二数据处理指令;该文档编辑栈的数据读取方式为后入先出;该至少一个第一数据处理指令和至少一个第二数据处理指令为变异数组。
在一种可能实现方式中,该第一编辑操作信息和该撤销操作信息用于表示本地用户对该目标文档的编辑操作;
该转化模块903还用于当获取到本地用户对目标文档的第一编辑操作信息的同时,接收到任一其他用户对该目标文档的第二编辑操作信息时,对该第二编辑操作信息进行转化,得到该第二编辑操作信息对应的对该目标文档中数据的至少一个第三数据处理指令;
其中,该第二编辑操作信息用于表示该任一其他用户对该目标文档的第二编辑操作,该第三数据处理指令用于表示对该目标文档中数据的处理方式。
在一种可能实现方式中,该执行模块902还用于:
当获取到用户对该目标文档的第一编辑操作的撤销操作信息时,对该至少一个第三数据处理指令以及该第一编辑操作信息对应的至少一个第二数据处理指令进行冲突处理;
执行处理后的该第一编辑操作信息对应的至少一个第二数据处理指令。
在一种可能实现方式中,该装置还包括:
第三存储模块,用于将该至少一个第三数据处理指令存入文档编辑栈中;
该执行模块902还用于当获取到用户对该目标文档的第一编辑操作的撤销操作信息,且该第一编辑操作信息对应的至少一个第二数据处理指令的入栈时间在该至少一个第三数据处理指令的入栈时间之前时,对该至少一个第三数据处理指令以及该第一编辑操作信息对应的至少一个第二数据处理指令进行冲突处理。
在一种可能实现方式中,该执行模块902还用于:
当获取到用户对该目标文档的第一编辑操作的重做操作信息,且该第一编辑操作信息对应的至少一个第一数据处理指令的入栈时间在该至少一个第三数据处理指令的入栈时间之前时,对该至少一个第三数据处理指令以及该第一编辑操作信息对应的至少一个第一数据处理指令进行冲突处理;
执行处理后的该第一编辑操作信息对应的至少一个第一数据处理指令。
在一种可能实现方式中,该执行模块902用于当该第一编辑操作信息对应的至少一个第二数据处理指令与该至少一个第三数据处理指令所指示的数据存在重叠区域时,根据各个数据处理指令所指示的对同一数据的处理方式以及各个数据处理指令的优先级,对各个数据处理指令中对该同一数据的增加或删减、格式设置或内容设置的指令内容进行更新。
本申请实施例提供的装置,一方面,通过将用户的编辑操作信息转化为对目标文档中具体数据的数据处理指令,当重复执行时,直接执行数据处理指令,而无需重复执行复杂的逻辑,对编辑操作信息进行处理,文档编辑效率较高。且该转化过程中基于编辑操作信息转化得到了与其对应的第一数据处理指令逆向的第二数据处理指令,从而在后续用户撤销本次编辑操作时直接执行,而无需根据撤销操作信息重新分析如何对数据进行逆向处理,以恢复原有状态,有效提高了文档编辑的效率。另一方面,将转化后的数据处理指令与目标文档中数据相关,与用户无关,如果有多个用户的用户操作,则不会造成影响,准确率高。
需要说明的是:上述实施例提供的文档编辑装置在进行文档编辑时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文档编辑装置与文档编辑方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图10是本申请实施例提供的一种终端的结构示意图。该终端1000可以是:智能手机、平板电脑、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1000还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1000包括有:一个或多个处理器1001和一个或多个存储器1002。
处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器1001所执行以实现本发明中方法实施例提供的文档编辑方法。
在一些实施例中,终端1000还可选包括有:外围设备接口1003和至少一个外围设备。处理器1001、存储器1002和外围设备接口1003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1003相连。具体地,外围设备包括:射频电路1004、显示屏1005、摄像头组件1006、音频电路1007、定位组件1008和电源1009中的至少一种。
外围设备接口1003可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1001和存储器1002。在一些实施例中,处理器1001、存储器1002和外围设备接口1003被集成在同一芯片或电路板上;在一些其他实施例中,处理器1001、存储器1002和外围设备接口1003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1004用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1004通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1004将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1004包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1004可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1004还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本发明对此不加以限定。
显示屏1005用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1005是触摸显示屏时,显示屏1005还具有采集在显示屏1005的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1001进行处理。此时,显示屏1005还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1005可以为一个,设置终端1000的前面板;在另一些实施例中,显示屏1005可以为至少两个,分别设置在终端1000的不同表面或呈折叠设计;在再一些实施例中,显示屏1005可以是柔性显示屏,设置在终端1000的弯曲表面上或折叠面上。甚至,显示屏1005还可以设置成非矩形的不规则图形,也即异形屏。显示屏1005可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1006用于采集图像或视频。可选地,摄像头组件1006包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1006还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1007可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1001进行处理,或者输入至射频电路1004以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1000的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1001或射频电路1004的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1007还可以包括耳机插孔。
定位组件1008用于定位终端1000的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件1008可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源1009用于为终端1000中的各个组件进行供电。电源1009可以是交流电、直流电、一次性电池或可充电电池。当电源1009包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1000还包括有一个或多个传感器1010。该一个或多个传感器1010包括但不限于:加速度传感器1011、陀螺仪传感器1012、压力传感器1013、指纹传感器1014、光学传感器1015以及接近传感器1016。
加速度传感器1011可以检测以终端1000建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1011可以用于检测重力加速度在三个坐标轴上的分量。处理器1001可以根据加速度传感器1011采集的重力加速度信号,控制显示屏1005以横向视图或纵向视图进行用户界面的显示。加速度传感器1011还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1012可以检测终端1000的机体方向及转动角度,陀螺仪传感器1012可以与加速度传感器1011协同采集用户对终端1000的3D动作。处理器1001根据陀螺仪传感器1012采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1013可以设置在终端1000的侧边框和/或显示屏1005的下层。当压力传感器1013设置在终端1000的侧边框时,可以检测用户对终端1000的握持信号,由处理器1001根据压力传感器1013采集的握持信号进行左右手识别或快捷操作。当压力传感器1013设置在显示屏1005的下层时,由处理器1001根据用户对显示屏1005的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1014用于采集用户的指纹,由处理器1001根据指纹传感器1014采集到的指纹识别用户的身份,或者,由指纹传感器1014根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1001授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1014可以被设置终端1000的正面、背面或侧面。当终端1000上设置有物理按键或厂商Logo时,指纹传感器1014可以与物理按键或厂商Logo集成在一起。
光学传感器1015用于采集环境光强度。在一个实施例中,处理器1001可以根据光学传感器1015采集的环境光强度,控制显示屏1005的显示亮度。具体地,当环境光强度较高时,调高显示屏1005的显示亮度;当环境光强度较低时,调低显示屏1005的显示亮度。在另一个实施例中,处理器1001还可以根据光学传感器1015采集的环境光强度,动态调整摄像头组件1006的拍摄参数。
接近传感器1016,也称距离传感器,通常设置在终端1000的前面板。接近传感器1016用于采集用户与终端1000的正面之间的距离。在一个实施例中,当接近传感器1016检测到用户与终端1000的正面之间的距离逐渐变小时,由处理器1001控制显示屏1005从亮屏状态切换为息屏状态;当接近传感器1016检测到用户与终端1000的正面之间的距离逐渐变大时,由处理器1001控制显示屏1005从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图10中示出的结构并不构成对终端1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由处理器执行以完成上述实施例中的文档编辑方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种文档编辑方法,其特征在于,所述方法包括:
获取用户对目标文档的第一编辑操作信息,所述第一编辑操作信息用于表示用户对所述目标文档的第一编辑操作;
基于所述第一编辑操作信息,对所述目标文档中的数据进行处理;
对所述第一编辑操作信息进行转化,得到与所述第一编辑操作信息对应的第一数据处理指令逆向的至少一个第二数据处理指令,所述第一数据处理指令和所述第二数据处理指令用于表示对所述目标文档中数据的处理方式;
当获取到用户对所述目标文档的第一编辑操作的撤销操作信息时,执行所述第一编辑操作信息对应的至少一个第二数据处理指令。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一编辑操作信息进行转化,得到与所述第一编辑操作信息对应的第一数据处理指令逆向的至少一个第二数据处理指令,包括:
对所述第一编辑操作信息进行转化,得到所述第一编辑操作信息对应的对所述目标文档中数据的至少一个第一数据处理指令;
对所述至少一个第一数据处理指令进行转置,得到所述至少一个第二数据处理指令。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一编辑操作信息进行转化,得到所述第一编辑操作信息对应的对所述目标文档中数据的至少一个第一数据处理指令,包括:
根据所述第一编辑操作信息的指令内容,确定所述第一编辑操作信息所指示的所述目标文档中的数据;
将所述第一编辑操作信息拆分为对所述数据进行增加或删减、格式设置或内容设置的至少一个第一数据处理指令。
4.根据权利要求2所述的方法,其特征在于,所述对所述第一编辑操作信息进行转化,得到所述第一编辑操作信息对应的对所述目标文档中数据的至少一个第一数据处理指令之后,所述方法还包括:
存储所述至少一个第一数据处理指令;
所述当获取到用户对所述目标文档的第一编辑操作的撤销操作信息时,执行所述第一编辑操作信息对应的至少一个第二数据处理指令之后,所述方法还包括:
当获取到用户对所述目标文档的所述第一编辑操作的重做操作信息时,执行所述第一编辑操作信息对应的所述至少一个第一数据处理指令。
5.根据权利要求4所述的方法,其特征在于,所述存储所述至少一个第一数据处理指令,包括:
将所述至少一个第一数据处理指令存入文档编辑栈中;
所述执行所述第一编辑操作信息对应的所述至少一个第一数据处理指令,包括:
从所述文档编辑栈中读取并执行所述第一编辑操作信息对应的所述至少一个第一数据处理指令。
6.根据权利要求1所述的方法,其特征在于,所述对所述第一编辑操作信息进行转化,得到与所述第一编辑操作信息对应的第一数据处理指令逆向的至少一个第二数据处理指令之后,所述方法还包括:
将所述至少一个第二数据处理指令存入文档编辑栈中;
所述执行所述第一编辑操作信息对应的至少一个第二数据处理指令,包括:
从所述文档编辑栈中读取并执行所述第一编辑操作信息对应的所述至少一个第二数据处理指令。
7.根据权利要求5或6所述的方法,其特征在于,所述文档编辑栈包括撤销栈和重做栈,所述撤销栈用于存储至少一个第一数据处理指令,所述重做栈用于存储所述至少一个第二数据处理指令;所述文档编辑栈的数据读取方式为后入先出;所述至少一个第一数据处理指令和至少一个第二数据处理指令为变异数组。
8.根据权利要求1所述的方法,其特征在于,所述第一编辑操作信息和所述撤销操作信息用于表示本地用户对所述目标文档的编辑操作;
所述方法还包括:
当获取到本地用户对目标文档的第一编辑操作信息的同时,接收到任一其他用户对所述目标文档的第二编辑操作信息时,对所述第二编辑操作信息进行转化,得到所述第二编辑操作信息对应的对所述目标文档中数据的至少一个第三数据处理指令;
其中,所述第二编辑操作信息用于表示所述任一其他用户对所述目标文档的第二编辑操作,所述第三数据处理指令用于表示对所述目标文档中数据的处理方式。
9.根据权利要求8所述的方法,其特征在于,所述当获取到用户对所述目标文档的第一编辑操作的撤销操作信息时,执行所述第一编辑操作信息对应的至少一个第二数据处理指令,包括:
当获取到用户对所述目标文档的第一编辑操作的撤销操作信息时,对所述至少一个第三数据处理指令以及所述第一编辑操作信息对应的至少一个第二数据处理指令进行冲突处理;
执行处理后的所述第一编辑操作信息对应的至少一个第二数据处理指令。
10.根据权利要求9所述的方法,其特征在于,所述对所述第二编辑操作信息进行转化,得到所述第二编辑操作信息对应的对所述目标文档中数据的至少一个第三数据处理指令之后,所述方法还包括:
将所述至少一个第三数据处理指令存入文档编辑栈中;
所述当获取到用户对所述目标文档的第一编辑操作的撤销操作信息时,对所述至少一个第三数据处理指令以及所述第一编辑操作信息对应的至少一个第二数据处理指令进行冲突处理,包括:
当获取到用户对所述目标文档的第一编辑操作的撤销操作信息,且所述第一编辑操作信息对应的至少一个第二数据处理指令的入栈时间在所述至少一个第三数据处理指令的入栈时间之前时,对所述至少一个第三数据处理指令以及所述第一编辑操作信息对应的至少一个第二数据处理指令进行冲突处理。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
当获取到用户对所述目标文档的第一编辑操作的重做操作信息,且所述第一编辑操作信息对应的至少一个第一数据处理指令的入栈时间在所述至少一个第三数据处理指令的入栈时间之前时,对所述至少一个第三数据处理指令以及所述第一编辑操作信息对应的至少一个第一数据处理指令进行冲突处理;
执行处理后的所述第一编辑操作信息对应的至少一个第一数据处理指令。
12.根据权利要求9或10所述的方法,其特征在于,所述对所述至少一个第三数据处理指令以及所述第一编辑操作信息对应的至少一个第二数据处理指令进行冲突处理,包括:
当所述第一编辑操作信息对应的至少一个第二数据处理指令与所述至少一个第三数据处理指令所指示的数据存在重叠区域时,根据各个数据处理指令所指示的对同一数据的处理方式以及各个数据处理指令的优先级,对各个数据处理指令中对所述同一数据的增加或删减、格式设置或内容设置的指令内容进行更新。
13.一种文档编辑装置,其特征在于,所述装置包括:
获取模块,用于获取用户对目标文档的第一编辑操作信息,所述第一编辑操作信息用于表示用户对所述目标文档的第一编辑操作;
执行模块,用于基于所述第一编辑操作信息,对所述目标文档中的数据进行处理;
转化模块,用于对所述第一编辑操作信息进行转化,得到与所述第一编辑操作信息对应的第一数据处理指令逆向的至少一个第二数据处理指令,所述第一数据处理指令和所述第二数据处理指令用于表示对所述目标文档中数据的处理方式;
所述执行模块,还用于当获取到用户对所述目标文档的第一编辑操作的撤销操作信息时,执行所述第一编辑操作信息对应的至少一个第二数据处理指令。
14.一种终端,其特征在于,所述终端包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述程序代码由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求12任一项所述的文档编辑方法所执行的操作。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至权利要求12任一项所述的文档编辑方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910974631.6A CN112632918B (zh) | 2019-10-14 | 2019-10-14 | 文档编辑方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910974631.6A CN112632918B (zh) | 2019-10-14 | 2019-10-14 | 文档编辑方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112632918A true CN112632918A (zh) | 2021-04-09 |
CN112632918B CN112632918B (zh) | 2022-04-15 |
Family
ID=75283646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910974631.6A Active CN112632918B (zh) | 2019-10-14 | 2019-10-14 | 文档编辑方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632918B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656038A (zh) * | 2021-07-29 | 2021-11-16 | 北京百度网讯科技有限公司 | 编辑处理方法及装置 |
CN113656131A (zh) * | 2021-08-16 | 2021-11-16 | 维沃移动通信有限公司 | 远程控制方法、装置、电子设备及存储介质 |
CN114816593A (zh) * | 2022-06-27 | 2022-07-29 | 天津联想协同科技有限公司 | 一种命令的执行方法、装置及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110208805A1 (en) * | 2010-02-24 | 2011-08-25 | Microsoft Corporation | Multi-master text synchronization using deltas |
CN102436441A (zh) * | 2010-10-26 | 2012-05-02 | 微软公司 | 同步在线文档编辑 |
US8453052B1 (en) * | 2006-08-16 | 2013-05-28 | Google Inc. | Real-time document sharing and editing |
CN104731765A (zh) * | 2013-12-19 | 2015-06-24 | 国际商业机器公司 | 解决由同时草稿引起的内容编辑冲突 |
CN105528334A (zh) * | 2015-12-17 | 2016-04-27 | 广州视睿电子科技有限公司 | 一种文档操作处理的方法以及终端 |
-
2019
- 2019-10-14 CN CN201910974631.6A patent/CN112632918B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8453052B1 (en) * | 2006-08-16 | 2013-05-28 | Google Inc. | Real-time document sharing and editing |
US20110208805A1 (en) * | 2010-02-24 | 2011-08-25 | Microsoft Corporation | Multi-master text synchronization using deltas |
CN102436441A (zh) * | 2010-10-26 | 2012-05-02 | 微软公司 | 同步在线文档编辑 |
CN104731765A (zh) * | 2013-12-19 | 2015-06-24 | 国际商业机器公司 | 解决由同时草稿引起的内容编辑冲突 |
CN105528334A (zh) * | 2015-12-17 | 2016-04-27 | 广州视睿电子科技有限公司 | 一种文档操作处理的方法以及终端 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656038A (zh) * | 2021-07-29 | 2021-11-16 | 北京百度网讯科技有限公司 | 编辑处理方法及装置 |
CN113656038B (zh) * | 2021-07-29 | 2023-08-01 | 北京百度网讯科技有限公司 | 编辑处理方法及装置 |
CN113656131A (zh) * | 2021-08-16 | 2021-11-16 | 维沃移动通信有限公司 | 远程控制方法、装置、电子设备及存储介质 |
CN114816593A (zh) * | 2022-06-27 | 2022-07-29 | 天津联想协同科技有限公司 | 一种命令的执行方法、装置及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112632918B (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110674022B (zh) | 行为数据获取方法、装置及存储介质 | |
CN109977333B (zh) | 网页显示方法、装置、计算机设备及存储介质 | |
CN112632918B (zh) | 文档编辑方法、装置、终端及存储介质 | |
CN113204298A (zh) | 显示发布进度的方法、装置、电子设备及存储介质 | |
CN115378900A (zh) | 歌单共享方法、装置、终端及存储介质 | |
CN111949680A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN110839174A (zh) | 图像处理的方法、装置、计算机设备以及存储介质 | |
CN110248197B (zh) | 语音增强方法及装置 | |
CN110851823A (zh) | 数据访问方法、装置、终端及存储介质 | |
CN110677713B (zh) | 视频图像处理方法及装置、存储介质 | |
CN111459466A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN112560435B (zh) | 文本语料处理方法、装置、设备及存储介质 | |
CN110737692A (zh) | 一种检索数据的方法、建立索引库的方法及装置 | |
CN113268234A (zh) | 页面生成方法、装置、终端和存储介质 | |
CN111190751B (zh) | 基于歌单的任务处理方法、装置、计算机设备及存储介质 | |
CN114594885A (zh) | 应用图标的管理方法、装置、设备及计算机可读存储介质 | |
CN109189525B (zh) | 加载子页面的方法、装置、设备及计算机可读存储介质 | |
CN113408989A (zh) | 汽车数据的比对方法、装置及计算机存储介质 | |
CN112231619A (zh) | 转换方法、装置、电子设备及存储介质 | |
CN111241451A (zh) | 网页处理方法、装置、计算机设备及存储介质 | |
CN110717110A (zh) | 多媒体资源过滤方法、装置、电子设备及存储介质 | |
CN111275561B (zh) | 获取关联关系的方法、装置、计算机设备和存储介质 | |
CN115379274B (zh) | 基于图片的互动方法、装置、电子设备及存储介质 | |
CN113282242B (zh) | 分布式存储方法、装置、设备及计算机可读存储介质 | |
CN111953767B (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 |