CN112039929B - 文件编辑方法、装置及电子设备 - Google Patents
文件编辑方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112039929B CN112039929B CN201910407281.5A CN201910407281A CN112039929B CN 112039929 B CN112039929 B CN 112039929B CN 201910407281 A CN201910407281 A CN 201910407281A CN 112039929 B CN112039929 B CN 112039929B
- Authority
- CN
- China
- Prior art keywords
- node
- information
- target
- editing
- state information
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/101—Collaborative creation, e.g. joint development of products or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了文件编辑方法、装置及电子设备。所述方法包括:第一用户关联的第一客户端获得目标文件后,对所述目标文件包括的可编辑节点信息进行展示;确定待编辑的目标节点,并获得所述目标节点的第一节点状态信息,所述第一节点状态信息包括所述第一用户对所述目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;将所述第一节点状态信息提交到编辑服务端,以便编辑服务端将所述第一节点状态信息发送给对所述目标文件进行协同编辑的第二用户关联的第二客户端进行同步操作。如此方案,既允许多人同时对目标节点进行编辑操作,又不需要在出现编辑冲突时由用户自行解决,可以简单便捷的自动解决编辑冲突问题。
Description
技术领域
本申请涉及协同编辑技术领域,特别是涉及文件编辑方法、装置及电子设备。
背景技术
协同编辑指的是多人在线对同一个文档进行协作编辑,且编辑信息可以实时同步给可编辑该文档的所有用户。例如,用户A创建文档后可以进行文件传输,将文档分享给用户B以及用户C查看,若文档设置为允许其他用户进行在线编辑,则在用户B对文档进行编辑后,可以经由编辑服务端将编辑信息同步给用户A以及用户C,这样,便可避免因为文档修改多次在用户之间进行文档传输,有助于简化用户操作,降低文档多次传输对网络资源的消耗。
进行协同编辑时,可以将文档划分为多个区块,每个区块可以作为文档的一个可编辑节点,通过唯一id进行标识。用户从可编辑节点中选中目标节点后,可以对目标节点进行编辑,例如,用户A对节点1关联的内容中的部分文字进行加粗操作,如果在用户A编辑节点1的同时,其他用户也将节点1确定为待编辑的目标节点,即多个用户同时对同一个目标节点进行在线编辑时,可能会出现编辑冲突。
目前主要通过以下两种方式解决编辑冲突:
方式一,基于锁机制解决编辑冲突。以用户A正在编辑节点1为例,可以将节点1进行锁定,禁止其他用户对节点1进行编辑操作,也就是说,同一时刻只允许单人进行文档编辑,编辑效率低下。此外,如果文档包括的节点较多,当有多个用户同时对不同节点进行编辑操作时,需要针对每个被编辑的节点进行加锁处理,随着加锁数量的增加,服务器的负载压力也随之变大。
方式二,基于版本控制方式解决编辑冲突。以用户A以及用户B同时对节点1进行编辑操作为例,在用户B向编辑服务端提交编辑信息B时,如果相较于用户B编辑的版本来说,节点1已经进行了更新,例如,用户A针对节点1向服务端提交了编辑信息A,服务端可以向用户B返回编辑信息A,由用户B判断是否需要对编辑信息A进行同步。如果不需要同步,则可利用编辑信息B对编辑信息A进行覆盖;如果需要同步,则可由用户B对编辑信息A以及编辑信息B进行合并处理,再提交到服务端。该方式下,直接将编辑冲突暴露给用户,由用户自行解决,可能会影响用户体验,此外,用户需要根据经验进行同步判断,对用户专业技能的要求较高。
发明内容
本申请提供了一种文件编辑方法、装置及电子设备,在多个用户同时对目标节点进行编辑操作时,可以基于该多个用户进行编辑操作时各自对应的操作时间戳信息,确定对每个用户的编辑操作进行同步的方式,简单便捷的解决编辑冲突问题。
本申请提供了如下方案:
一种文件编辑方法,包括:
第一用户关联的第一客户端获得目标文件后,对所述目标文件包括的可编辑节点信息进行展示;
确定待编辑的目标节点,并获得所述目标节点的第一节点状态信息,所述第一节点状态信息包括所述第一用户对所述目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
将所述第一节点状态信息提交到编辑服务端,以便所述编辑服务端将所述第一节点状态信息发送给对所述目标文件进行协同编辑的第二用户关联的第二客户端进行同步操作。
一种文件编辑方法,包括:
第二用户关联的第二客户端获得编辑服务端发送的第一节点状态信息,所述第一节点状态信息包括第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
获得所述目标节点的第二节点状态信息,所述第二节点状态信息包括所述第二客户端对所述目标节点进行操作的第二操作时间戳信息;
根据所述第二操作时间戳信息以及所述第一操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息,并基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
一种文件编辑方法,包括:
编辑服务端获得第一用户关联的第一客户端提交的第一节点状态信息,所述第一节点状态信息包括所述第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息,所述目标节点属于目标文件;
向对所述目标文件进行协同编辑的第二用户关联的第二客户端发送所述第一节点状态信息,以便所述第二客户端根据所述第一节点状态信息对本地保存的目标节点进行同步操作。
一种文件编辑装置,应用于第一用户关联的第一客户端,包括:
可编辑节点信息展示单元,用于在获得目标文件后,对所述目标文件包括的可编辑节点信息进行展示;
第一节点状态信息获得单元,用于确定待编辑的目标节点,并获得所述目标节点的第一节点状态信息,所述第一节点状态信息包括所述第一用户对所述目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
第一节点状态信息提交单元,用于将所述第一节点状态信息提交到编辑服务端,以便所述编辑服务端将所述第一节点状态信息发送给对所述目标文件进行协同编辑的第二用户关联的第二客户端进行同步操作。
一种文件编辑装置,应用于第二用户关联的第二客户端,包括:
第一节点状态信息获得单元,用于获得编辑服务端发送的第一节点状态信息,所述第一节点状态信息包括第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
第二节点状态信息获得单元,用于获得所述目标节点的第二节点状态信息,所述第二节点状态信息包括所述第二客户端对所述目标节点进行操作的第二操作时间戳信息;
同步操作方式确定单元,用于根据所述第二操作时间戳信息以及所述第一操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息;
同步操作单元,用于基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
一种文件编辑装置,应用于编辑服务端,包括:
第一节点状态信息获得单元,用于获得第一用户关联的第一客户端提交的第一节点状态信息,所述第一节点状态信息包括所述第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息,所述目标节点属于目标文件;
第一节点状态信息发送单元,用于向对所述目标文件进行协同编辑的第二用户关联的第二客户端发送所述第一节点状态信息,以便所述第二客户端根据所述第一节点状态信息对本地保存的目标节点进行同步操作。
一种电子设备,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获得目标文件后,对所述目标文件包括的可编辑节点信息进行展示;
确定待编辑的目标节点,并获得所述目标节点的第一节点状态信息,所述第一节点状态信息包括第一用户对所述目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
将所述第一节点状态信息提交到编辑服务端,以便所述编辑服务端将所述第一节点状态信息发送给对所述目标文件进行协同编辑的第二用户关联的第二客户端进行同步操作。
一种电子设备,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获得编辑服务端发送的第一节点状态信息,所述第一节点状态信息包括第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
获得所述目标节点的第二节点状态信息,所述第二节点状态信息包括第二客户端对所述目标节点进行操作的第二操作时间戳信息;
根据所述第二操作时间戳信息以及所述第一操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息,并基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
一种电子设备,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获得第一用户关联的第一客户端提交的第一节点状态信息,所述第一节点状态信息包括所述第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息,所述目标节点属于目标文件;
向对所述目标文件进行协同编辑的第二用户关联的第二客户端发送所述第一节点状态信息,以便所述第二客户端根据所述第一节点状态信息对本地保存的目标节点进行同步操作。
根据本申请提供的具体实施例,本申请公开了以下技术效果:
通过本申请实施例,第一客户端可以获得第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息,作为目标节点的第一节点状态信息提交到编辑服务端。对于需要进行同步操作的第二客户端来说,可以在接收到服务端下发的第一节点状态信息后,获得目标节点的第二节点状态信息,并根据第二节点状态信息中包括的第二客户端对目标节点进行操作的第二操作时间戳信息,以及第一操作时间戳信息,确定对目标节点进行同步操作的方式信息。如果同步操作的方式信息为接受同步操作,则可利用第一操作行为信息对目标节点进行同步操作;如果同步操作的方式信息为拒绝同步操作,则可对第一节点状态信息进行舍弃处理。如此方案,即使有多个用户同时对目标节点进行编辑操作,因各用户进行编辑操作的时间各不相同,通过比对操作时间戳信息的方式,便可简单便捷的解决编辑冲突的问题,确保各客户端进行同步操作后在本地保存的目标文件的一致性。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的系统的示意图;
图2是本申请实施例提供的第一种方法的示意图;
图3是本申请实施例提供的一种界面的示意图;
图4是本申请实施例提供的第二种方法的流程图;
图5是本申请实施例提供的第三种方法的流程图;
图6是本申请实施例提供的第四种方法的流程图;
图7是本申请实施例提供的第一种装置的示意图;
图8是本申请实施例提供的第二种装置的示意图;
图9是本申请实施例提供的第三种装置的示意图;
图10是本申请实施例提供的计算机系统的架构的示意图;
图11是本申请实施例提供的电子设备的架构的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解本申请实施例提供的具体实现方案,下面先结合图1所示系统图对本方案的具体场景进行简单介绍。
以用户A、用户B以及用户C进行协同编辑为例,用户A关联的客户端A创建允许进行协同编辑的目标文件后,可以将目标文件传输给用户B以及用户C。作为一种示例,用户关联的客户端可以体现为安装在终端设备上的应用程序(App),用户A可以通过客户端A创建协同编辑群组,将目标文件分享到群组中,群组内的用户均可对目标文件进行协同编辑;或者,用户A可以通过客户端A将目标文件单独分享给用户B以及用户C,实现三者对目标文件的协同编辑。或者,作为一种示例,用户关联的客户端可以体现为安装在终端设备上的浏览器,用户A可以通过群组分享或者单独分享的方式,将目标文件的存储地址信息发送给用户B以及用户C,用户可以通过浏览器访问存储地址的方式,对目标文件进行查看以及编辑。
本申请实施例中,目标文件的类型可以体现为多种不同形式,例如,目标文件可以为文档文件、音频文件、视频文件等不同类型的文件。以文档文件为例,目标文件可以是根据会议内容生成的思维脑图、EXCEL表格等。
通常,目标文件可以包括多个可编辑节点,本申请实施例可以将可编辑节点作为协同编辑的基本单元,对可编辑节点进行唯一标识,由用户从中选择目标节点进行编辑操作。以根据会议内容生成的思维脑图为例,每个中心话题以及基于中心话题发散出的子话题,均可作为思维脑图包括的可编辑节点。或者,以EXCEL表格为例,每个单元格均可作为一个可编辑节点,供用户选择并进行协同编辑。或者,以音频文件、视频文件为例,可以将目标文件切割为多个子文件,每个子文件均可作为一个可编辑节点。作为一种示例,可以按照固定时长将目标文件切割为多个子文件,例如,每隔3秒进行一次文件切割;或者,也可以根据切割需求不按固定时长进行文件切割,本申请实施例对此可不做具体限定。
在对目标文件进行协同编辑时,如果同时只有唯一的用户对目标节点进行编辑操作,其他可对目标文件进行协同编辑的用户关联的客户端直接基于该唯一用户提交到编辑服务端的节点状态信息,在本地对目标节点进行同步操作即可;如果同时有至少两个用户对目标节点进行编辑操作,例如,用户A对可编辑节点3进行更新操作的同时,用户B对可编辑节点3进行删除操作,此时可能会出现操作冲突,致使客户端进行同步操作时出错。
本申请实施例中,考虑到多个用户同时对目标节点进行编辑操作时,即使编辑操作的时间非常接近,也必然存在先后之分,故可以根据不同用户进行协同编辑的操作时间戳信息,解决编辑冲突问题。
具体地,本申请实施例提供的文件编辑工具可以包括:第一客户端、第二客户端以及编辑服务端。其中,第一客户端可以从可编辑节点中确定目标节点,并对目标节点进行编辑操作获得第一节点状态信息,优选地,第一节点状态信息可以包括第一用户进行编辑操作的第一操作行为信息以及第一操作时间戳信息。部署在云端服务端上的编辑服务端,可以将第一客户端提交的第一节点状态信息下发到第二客户端,以便第二客户端根据第一节点状态信息在本地对目标节点进行同步操作,确保第一客户端以及第二客户端本地保存的目标文件的一致性。
作为一种示例,操作行为信息可以体现为:对目标节点进行删除操作、对目标节点进行移动操作、对与目标节点关联的新增节点进行插入操作、对目标节点关联的操作对象进行更新操作。其中,操作对象可以为目标节点关联的内容信息,例如,某个话题节点涉及的会议内容信息,或者某个单元格节点涉及的表格信息等;或者,操作对象可以为目标节点关联的样式信息,例如,文字颜色、文字大小、节点背景色等。
下面结合图2所示流程图,对本申请实施例的实现过程进行解释说明。
实施例1
S101:第一用户关联的第一客户端获得用于进行协同编辑的目标文件后,对所述目标文件包括的可编辑节点信息进行展示。
以目标文件为思维脑图为例,用户B关联的客户端B获得目标文件后,可以将目标文件加载到本地保存,同时还可以通过图3所示节点信息展示界面,对目标文件包括的可编辑节点信息进行展示,以便用户B确定目标文件包括哪些节点,以及各节点分别对应什么内容,并据此从可编辑节点中确定出待编辑的目标节点。例如,用户B将节点3确定为目标节点。本示例中,用户B即为第一用户,客户端B即为第一客户端。
作为一种示例,界面中展示的可编辑节点信息可以为节点的标识信息,例如,节点的id、与节点关联的内容相关的标题、摘要等信息,本申请实施例对此可不做具体限定,只要确保节点标识信息的唯一性,且用户能明确各节点分别对应什么内容,并据此确定出目标节点即可。
本申请实施例中,第一客户端还可以接收编辑服务端发送的编辑状态信息,其中,编辑状态信息可以包括处于编辑状态的节点的数量信息以及节点的标识信息。也就是说,第一客户端可以向第一用户展示目前处于编辑状态的节点有哪些,以便第一用户对其要选择的目标节点是否会出现编辑冲突做好心理预期。作为一种示例,可以通过节点信息展示界面对编辑状态信息进行展示,如图3所举示例,用户B通过界面可以查看目前只有节点3处于编辑状态,对应的数量信息为1。
此外,服务端发送的编辑状态信息中还可以包括对处于编辑状态的节点进行编辑操作的用户的标识信息,以便第一用户明确正在进行编辑操作的用户是谁。作为一种示例,可以在界面划分出的展示区域中,对处于编辑状态的节点的数量信息、节点的标识信息、以及各节点对应的正在进行编辑操作的用户的标识信息进行展示;或者,可以在第一用户选中某个处于编辑状态的节点的情况下,再对编辑该节点的用户的标识信息进行展示,如图3所示,节点3为处于编辑状态的节点,在用户B选中节点3的情况下,可以在弹出的内容框中展示正在对节点3进行编辑操作的用户A的标识信息。
此外,在第一用户选择目标节点进行编辑操作时,第一客户端还可以将目标节点的标识信息以及第一用户的标识信息提交到服务端,以便服务端对编辑状态信息进行更新。以上文所举示例为例,服务端获得用户B正在对节点3进行编辑操作的消息后,可以更新编辑状态信息并下发到各客户端进行刷新展示。本示例中,更新后的编辑状态信息可以为:处于编辑状态的节点的数量信息为1,处于编辑状态的节点为节点3,用户A以及用户B正在对节点3进行编辑操作。
S102:确定待编辑的目标节点,并获得所述目标节点的第一节点状态信息,所述第一节点状态信息包括所述第一用户对所述目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息。
用户B查看目标文件包括的可编辑节点,并从中确定出目标节点后,可以对目标节点进行编辑操作,客户端B可以获得用户B编辑操作对应的操作行为信息以及操作时间戳信息,作为节点状态信息1提交到服务端。以用户B对节点3进行删除操作为例,节点状态信息1可以体现为:"DELETE":100000000003,其中“DELETE”为第一操作行为信息,“100000000003”为第一操作时间戳信息。
本申请实施例中,客户端B获得第一节点状态信息之后,还可以对第一节点状态信息进行保存处理。例如,可以将第一节点状态信息保存在客户端B本地,或者可以保存到客户端B可以访问的云端服务器,本申请实施例对此可不做具体限定。这样,在其他用户对节点3进行编辑操作,例如客户端A对节点进行编辑操作,并将对应的节点状态信息2提交到服务端后,客户端B可以基于节点状态信息1,以及服务端下发的节点状态信息2,在本地对节点3进行同步操作,具体过程可参见下文所做介绍,此处暂不详述。
此外,客户端B对节点状态信息1进行保存处理,还便于用户B查看目标节点的历史操作记录信息(历史操作记录信息可以是进行编辑操作的操作记录信息,也可以是进行同步操作的操作记录信息)。优选地,客户端B可以在获得用户B对目标节点的操作意图信息后,获取目标节点关联的所有的节点状态信息,作为客户端B对目标节点所做操作的历史操作记录信息进行展示。其中,客户端B可以通过多种实现方式获得用户B对目标节点的操作意图信息,例如,在一种实现方式下,客户端B可以提供用于提交目标节点的标识信息的操作选项,通过操作选项获得目标节点的标识信息,即为获得用户B对目标节点的操作意图信息,可以读取目标节点的历史操作记录信息进行展示。或者,在另一种实现方式下,客户端B可以抓取用户B针对目标节点所做的操作动作,例如,用户B将鼠标移动到节点3上,或者,用户B以触控方式选中节点3,均可视为用户B对节点3的操作意图信息。
此外,第一客户端还可以将第一用户的标识信息提交到服务端,由服务端对第一用户的标识信息以及第一节点状态信息进行关联,并将这种关联关系下发到第一客户端以及第二客户端进行展示,也就是说,可以在客户端展示目标节点的历史编辑记录信息。具体地,历史编辑记录信息可以包括:操作行为信息、操作时间戳信息、进行编辑操作的用户的标识信息,方便对编辑过程进行跟踪查询。
对于删除操作、插入操作以及移动操作来说,第一客户端将第一节点状态信息提交到服务端,第二客户端便可据此进行同步操作。对于更新操作来说,除了第一节点状态信息之外,第一客户端还需要获得编辑信息提交到服务端,供第二客户端进行同步操作时使用。具体地,第一客户端可以在确定目标节点后,对目标节点关联的操作对象进行展示,进而在确定待编辑的目标操作对象后,获得目标操作对象对应的编辑信息提交到服务端。
如果目标操作对象为目标节点关联的内容信息,对应的编辑信息可以是对内容信息的修改信息;如果目标操作对象为目标节点关联的样式信息,对应的编辑信息可以是针对样式信息设置的属性参数,例如,将文字颜色设置为红色,将文字大小设置为14,将节点背景色设置为白色。
针对目标节点关联的样式信息,本申请实施例可以做如下说明:
通常,样式信息可以逐级细分,包括多层级的细分属性。例如,样式信息可以包括文字属性层级以及节点属性层级,其中,文字属性层级又可以进一步包括文字的颜色、文字的大小等细分属性,节点属性层级又可以进一步包括节点的背景色、节点边框的粗细等细分属性。
第二客户端获得目标操作对象的编辑信息后,可以对样式信息包括的所有属性循环一遍,通过一一对比的方式定位出目标操作对象,再根据对应的编辑信息对目标操作对象进行同步操作。当样式信息包括的属性层级较多时,这种通过循环对比对目标操作对象进行定位的方式的效率较低,为此,在目标操作对象为细分属性时,第一客户端提供的用于发送编辑信息的代码行中可以包括:表示目标操作对象对应的编辑信息的代码行,以及表示目标操作对象对应的属性层级信息的路径代码行。优选地,还可以通过特殊符号对各属性层级信息进行分割,例如,点号、逗号、斜线等特殊符号。
以将文字颜色设置为红色为例,与编辑信息相关的代码行中可以包括:"textStyle":{"fill":"red"},路径代码行中可以包括:"textStyle.fill"。本示例中,通过点号“.”分割属性层级信息,这样,在第二客户端获得编辑信息后,可以识别路径代码行中的点号,获得点号分割出的属性层级信息textStyle以及属性层级信息fill,根据二者可以快速对目标操作对象进行定位,然后再根据编辑信息将目标节点的文字设置为红色。
S103:编辑服务端获得第一客户端针对所述目标节点提交的第一节点状态信息,将所述第一节点状态信息发送至对所述目标文件进行协同编辑的第二用户关联的第二客户端进行同步操作。
本申请实施例中,可以基于WebSocket技术实现客户端与服务端之间的双向通信。服务端可以与第一客户端进行实时通信,接收第一客户端提交的第一节点状态信息,服务端还可以与第二客户端进行实时通信,将第一节点状态信息下发到第二客户端。作为一种示例,服务端可以将第一节点状态信息保存到消息队列中,等待与先前放入消息队列的其他节点状态信息进行顺序广播,下发到第二客户端进行同步操作。
S104:第二客户端获得所述目标节点的第一节点状态信息,以及所述目标节点的第二节点状态信息,所述第二节点状态信息包括所述第二客户端对所述目标节点进行操作的第二操作时间戳信息。
S105:根据两个节点状态信息中的操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息,并基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
本申请实施例中,第二客户端可以获得以下两个节点状态信息:第一客户端对目标节点进行编辑操作后提交到服务端的第一节点状态信息,以及第二客户端对目标节点进行操作的第二节点状态信息。其中,如果第二客户端对目标节点进行了一次操作,则第二节点状态信息中的第二操作时间戳信息为进行该唯一操作时的时间戳信息;如果第二客户端对目标节点进行了多次操作,则第二操作时间戳信息可以是进行最新一次操作时的时间戳信息。
第二客户端可以根据以上两个节点状态信息中的操作时间戳信息,获得对目标节点进行同步操作的方式信息。其中,同步操作的方式信息可以是接受同步操作或者拒绝同步操作,下面分别对这两种情况进行解释说明。
在一种情况下,如果第二节点状态信息中的第二操作时间戳信息早于第一节点状态信息中的第一操作时间戳信息,即,对目标节点来说,最新的操作行为是第一节点状态信息中的第一操作行为。对应于此,第二客户端可以将同步操作的方式信息确定为接受同步操作,并根据第一操作行为信息对目标节点进行同步操作,同时还可以保存第一节点状态信息,将第一操作行为信息确定为对目标节点进行的最新操作,以便在获得目标节点的新的节点状态信息时,可以根据第一节点状态信息中的第一操作时间戳信息与新的节点状态信息中的新的操作时间戳信息进行对比,确定对目标节点进行同步操作的方式。
或者,在另一种情况下,如果第二操作时间戳信息晚于第一操作时间戳信息,即,对目标节点来说,最新的操作行为是第二节点状态信息中的第二操作行为。对应于此,第二客户端可以将同步操作的方式信息确定为拒绝同步操作,可以对第一节点状态信息进行舍弃处理。
下面结合上文所举示例,对客户端A、客户端B以及客户端C的同步操作过程进行解释说明。
上文所举示例中,客户端B对节点3进行了删除操作,对应的节点状态信息1为"DELETE":100000000003;客户端A对节点3进行了更新操作,对应的节点状态信息2为"UPDATE":100000000002。
对于客户端A来说,需要结合服务端下发的节点状态信息1(即第一节点状态信息)以及本地保存的节点状态信息2(即第二节点状态信息),对节点3进行同步操作。通过比对2个节点状态信息中的操作时间戳信息可知,更新操作的操作时间戳信息早于删除操作的操作时间戳信息,即,客户端A本地保存的并非节点3的最新编辑版本,客户端A需要根据节点状态信息1在本地对节点3进行同步操作,也就是说,客户端A可以在本地对节点3进行删除操作。与此同时,客户端A还可以将节点状态信息1进行本地保存,进而在获得节点3的新的节点状态信息时,将节点状态信息1作为第二节点状态信息,结合节点状态信息1以及新的节点状态信息对节点3进行同步操作。
结合图3所举示例,如果目标文件为思维脑图,且客户端B确定的目标节点为父节点,客户端C对目标节点进行同步操作时,可以对目标节点以及目标节点关联的子节点进行删除操作,即删除节点3以及节点5。
同步操作后,客户端A本地保存的节点3的历史操作记录信息可以为:"INSERT":100000000001;"UPDATE":100000000002;"DELETE":100000000003。
对于客户端B来说,需要结合服务端下发的节点状态信息2(即第一节点状态信息)以及本地保存的节点状态信息1(即第二节点状态信息),对节点3进行同步操作。通过比对2个节点状态信息中的操作时间戳信息可知,更新操作的操作时间戳信息晚于删除操作的操作时间戳信息,即客户端B本地保存的已经是节点3最新的编辑版本,客户端B可以对节点状态信息2进行丢弃处理。
同步操作后,客户端B本地保存的节点3的历史操作记录信息可以为:"INSERT":100000000001;"DELETE":100000000003。
在实际应用过程中,考虑到网络传输速度等因素的影响,节点状态信息1以及节点状态信息2提交到服务端,放入消息队列的顺序可能会有所不同,导致客户端C根据这两个节点状态信息进行同步操作后,本地保存的历史操作记录信息可能会有所不同。下面进行举例说明。
如果客户端C先接收到节点状态信息1后接收到节点状态信息2,同步过程可以体现为:客户端C结合节点状态信息1(即第一节点状态信息)以及本地保存的节点状态信息0(即第二节点状态信息,因为客户端C未对节点3进行编辑操作,节点状态信息0可以为初始状态"INSERT":100000000001),对节点3进行同步操作时,通过比对2个节点状态信息中的操作时间戳信息可知,客户端C可以根据节点状态信息1在本地对节点3进行删除操作。与此同时,客户端C还可以将节点状态信息1进行本地保存,进而在获得节点状态信息2时,根据节点状态信息2(即第一节点状态信息)以及本地保存的节点状态信息1(即第二节点状态信息)再次进行同步操作,因为删除操作已经是针对节点3进行的最新操作,即客户端C本地保存的已经是节点3最新的编辑版本,故客户端C可以对节点状态信息2进行丢弃处理。
同步操作后,客户端C本地保存的节点3的历史操作记录信息可以为:"INSERT":100000000001;"DELETE":100000000003。
如果客户端C先接收到节点状态信息2后接收到节点状态信息1,同步过程可以体现为:客户端C结合节点状态信息2(即第一节点状态信息)以及本地保存的节点状态信息0(即第二节点状态信息),对节点3进行同步操作时,通过比对2个节点状态信息中的操作时间戳信息可知,客户端C可以根据节点状态信息2在本地对节点3进行更新操作。与此同时,客户端C还可以将节点状态信息2进行本地保存,进而在获得节点状态信息1时,根据节点状态信息1(即第一节点状态信息)以及本地保存的节点状态信息2(即第二节点状态信息)再次进行同步操作,因为删除操作为针对节点3进行的最新操作,即客户端C本地保存的并非节点3的最新编辑版本,故客户端C可以根据节点状态信息1在本地对节点3进行删除操作。
同步操作后,客户端C本地保存的节点3的历史操作记录信息可以为:"INSERT":100000000001;"UPDATE":100000000002;"DELETE":100000000003。
综上可知,本申请实施例根据操作时间戳信息进行同步操作,既允许多人同时对目标节点进行编辑操作,又不需要在出现编辑冲突时由用户自行解决,可以简单便捷的自动解决编辑冲突问题,确保各客户端进行同步操作后在本地保存的目标文件的一致性。对于客户端C来说,需要根据多个节点状态信息进行同步操作时,可能会因为获得各节点状态信息的先后顺序不同,导致本地保存的历史操作记录信息有所不同,但根据多个节点状态信息进行同步操作后,最终在本地保存的目标文件是与其他客户端保持一致的。
实施例2
该实施例2是与实施例1相对应的,从第一客户端的角度,提供了一种文件编辑方法,参见图4,该方法具体可以包括:
S201:第一用户关联的第一客户端获得目标文件后,对所述目标文件包括的可编辑节点信息进行展示;
S202:确定待编辑的目标节点,并获得所述目标节点的第一节点状态信息,所述第一节点状态信息包括所述第一用户对所述目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
S203:将所述第一节点状态信息提交到编辑服务端,以便所述编辑服务端将所述第一节点状态信息发送给对所述目标文件进行协同编辑的第二用户关联的第二客户端进行同步操作。
实施例3
该实施例3是与实施例1相对应的,从第二客户端的角度,提供了一种文件编辑方法,参见图5,该方法具体可以包括:
S301:第二用户关联的第二客户端获得编辑服务端发送的第一节点状态信息,所述第一节点状态信息包括第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
S302:获得所述目标节点的第二节点状态信息,所述第二节点状态信息包括所述第二客户端对所述目标节点进行操作的第二操作时间戳信息;
S303:根据所述第二操作时间戳信息以及所述第一操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息,并基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
实施例4
该实施例4是与实施例1相对应的,从编辑服务端的角度,提供了一种文件编辑方法,参见图6,该方法具体可以包括:
S401:编辑服务端获得第一用户关联的第一客户端提交的第一节点状态信息,所述第一节点状态信息包括所述第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息,所述目标节点属于目标文件;
S402:向对所述目标文件进行协同编辑的第二用户关联的第二客户端发送所述第一节点状态信息,以便所述第二客户端根据所述第一节点状态信息对本地保存的目标节点进行同步操作。
关于前述实施例2至实施例4中的未详述部分,可以参见前述实施例中的记载,这里不再赘述。
与实施例1相对应,本申请实施例还提供了一种文件编辑装置,参见图7,该装置应用于第一用户关联的第一客户端,包括:
可编辑节点信息展示单元501,用于在获得目标文件后,对所述目标文件包括的可编辑节点信息进行展示;
第一节点状态信息获得单元502,用于确定待编辑的目标节点,并获得所述目标节点的第一节点状态信息,所述第一节点状态信息包括所述第一用户对所述目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
第一节点状态信息提交单元503,用于将所述第一节点状态信息提交到编辑服务端,以便所述编辑服务端将所述第一节点状态信息发送给对所述目标文件进行协同编辑的第二用户关联的第二客户端进行同步操作。
其中,所述装置还包括:
编辑状态信息接收单元,用于接收所述编辑服务端发送的编辑状态信息,所述编辑状态信息包括处于编辑状态的节点的数量信息以及节点的标识信息,所述处于编辑状态的节点属于所述目标文件;
编辑状态信息展示单元,用于对所述编辑状态信息进行展示。
其中,所述编辑状态信息还包括对所述处于编辑状态的节点进行编辑操作的用户的标识信息;
如果所述目标节点为处于编辑状态的节点,所述装置还包括:
用户标识信息展示单元,用于在所述目标节点被选中的情况下,对编辑所述目标节点的用户的标识信息进行展示。
其中,所述装置还包括:
标识信息提交单元,用于将所述目标节点的标识信息以及所述第一用户的标识信息提交到所述编辑服务端,以便所述编辑服务端对所述编辑状态信息进行更新。
其中,所述第一操作行为信息包括:对所述目标节点进行删除操作、对所述目标节点进行移动操作、对与所述目标节点关联的新增节点进行插入操作、或者对所述目标节点关联的目标操作对象进行更新操作。
其中,如果所述操作行为信息为对所述目标节点关联的目标操作对象进行更新操作,
所述装置还包括:
编辑信息提交单元,用于确定所述目标节点后,对所述目标节点关联的操作对象进行展示;确定待编辑的目标操作对象,并获得所述目标操作对象对应的编辑信息,提交到所述编辑服务端。
其中,所述操作对象为所述目标节点关联的样式信息,且所述样式信息包括多层级的细分属性;
如果所述目标操作对象为所述细分属性,则所述第一客户端提供的用于发送所述编辑信息的代码中包括:
表示所述目标操作对象对应的编辑信息的代码行,以及表示所述目标操作对象对应的属性层级信息的路径代码行。
其中,通过特殊符号对所述属性层级信息进行分割,以便所述第二客户端根据所述特殊符号分割出的属性层级信息对所述目标操作对象进行定位。
与实施例1相对应,本申请实施例还提供了一种文件编辑装置,参见图8,该装置应用于第二用户关联的第二客户端,包括:
第一节点状态信息获得单元601,用于获得编辑服务端发送的第一节点状态信息,所述第一节点状态信息包括第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
第二节点状态信息获得单元602,用于获得所述目标节点的第二节点状态信息,所述第二节点状态信息包括所述第二客户端对所述目标节点进行操作的第二操作时间戳信息;
同步操作方式确定单元603,用于根据所述第二操作时间戳信息以及所述第一操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息;
同步操作单元604,用于基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
其中,如果所述第二操作时间戳信息早于所述第一操作时间戳信息,则所述同步操作的方式信息为接受同步操作,
所述同步操作单元,具体用于:
根据所述第一操作行为信息对所述目标节点进行同步操作,并保存所述第一节点状态信息,将所述第一操作行为信息确定为对所述目标节点进行的最新操作。
其中,如果所述第二操作时间戳信息晚于所述第一操作时间戳信息,则所述同步操作的方式信息为拒绝同步操作,
所述同步操作单元,具体用于:
对所述第一节点状态信息进行舍弃处理。
与实施例1相对应,本申请实施例还提供了一种文件编辑装置,参见图9,该装置应用于编辑服务端,包括:
第一节点状态信息获得单元701,用于获得第一用户关联的第一客户端提交的第一节点状态信息,所述第一节点状态信息包括所述第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息,所述目标节点属于目标文件;
第一节点状态信息发送单元702,用于向对所述目标文件进行协同编辑的第二用户关联的第二客户端发送所述第一节点状态信息,以便所述第二客户端根据所述第一节点状态信息对本地保存的目标节点进行同步操作。
其中,所述装置还包括:
关联关系发送单元,用于获得所述第一客户端发送的所述第一用户的标识信息;对所述第一用户的标识信息以及所述第一节点状态信息进行关联,将获得的关联关系发送到所述第一客户端以及所述第二客户端进行展示。
另外本申请实施例还提供了一种电子设备,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获得目标文件后,对所述目标文件包括的可编辑节点信息进行展示;
确定待编辑的目标节点,并获得所述目标节点的第一节点状态信息,所述第一节点状态信息包括第一用户对所述目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
将所述第一节点状态信息提交到编辑服务端,以便所述编辑服务端将所述第一节点状态信息发送给对所述目标文件进行协同编辑的第二用户关联的第二客户端进行同步操作。
以及一种电子设备,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获得编辑服务端发送的第一节点状态信息,所述第一节点状态信息包括第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
获得所述目标节点的第二节点状态信息,所述第二节点状态信息包括第二客户端对所述目标节点进行操作的第二操作时间戳信息;
根据所述第二操作时间戳信息以及所述第一操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息,并基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
以及一种电子设备,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获得第一用户关联的第一客户端提交的第一节点状态信息,所述第一节点状态信息包括所述第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息,所述目标节点属于目标文件;
向对所述目标文件进行协同编辑的第二用户关联的第二客户端发送所述第一节点状态信息,以便所述第二客户端根据所述第一节点状态信息对本地保存的目标节点进行同步操作。
其中,图10示例性的展示出了计算机系统的架构,具体可以包括处理器810,视频显示适配器811,磁盘驱动器812,输入/输出接口813,网络接口814,以及存储器820。上述处理器810、视频显示适配器811、磁盘驱动器812、输入/输出接口813、网络接口814,与存储器820之间可以通过通信总线830进行通信连接。
其中,处理器810可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器820可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器820可以存储用于控制计算机系统800运行的操作系统821,用于控制计算机系统800的低级别操作的基本输入输出系统(BIOS)。另外,还可以存储网页浏览器823,数据存储管理系统824,以及文件编辑系统825等等。上述文件编辑系统825就可以是本申请实施例中具体实现前述各步骤操作的编辑服务端。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器820中,并由处理器810来调用执行。
输入/输出接口813用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口814用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线830包括一通路,在设备的各个组件(例如处理器810、视频显示适配器811、磁盘驱动器812、输入/输出接口813、网络接口814,与存储器820)之间传输信息。
另外,该计算机系统800还可以从虚拟资源对象领取条件信息数据库841中获得具体领取条件的信息,以用于进行条件判断,等等。
需要说明的是,尽管上述设备仅示出了处理器810、视频显示适配器811、磁盘驱动器812、输入/输出接口813、网络接口814,存储器820,总线830等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
其中,图11示例性的展示出了电子设备的架构,例如,设备900可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理,飞行器等。
参照图11,设备900可以包括以下一个或多个组件:处理组件902,存储器904,电源组件906,多媒体组件908,音频组件910,输入/输出(I/O)的接口912,传感器组件914,以及通信组件916。
处理组件902通常控制设备900的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件902可以包括一个或多个处理器920来执行指令,以完成本公开技术方案提供的方法的全部或部分步骤。此外,处理组件902可以包括一个或多个模块,便于处理组件902和其他组件之间的交互。例如,处理部件902可以包括多媒体模块,以方便多媒体组件908和处理组件902之间的交互。
存储器904被配置为存储各种类型的数据以支持在设备900的操作。这些数据的示例包括用于在设备900上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器904可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件906为设备900的各种组件提供电力。电源组件906可以包括电源管理系统,一个或多个电源,及其他与为设备900生成、管理和分配电力相关联的组件。
多媒体组件908包括在设备900和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件908包括一个前置摄像头和/或后置摄像头。当设备900处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件910被配置为输出和/或输入音频信号。例如,音频组件910包括一个麦克风(MIC),当设备900处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器904或经由通信组件916发送。在一些实施例中,音频组件910还包括一个扬声器,用于输出音频信号。
I/O接口912为处理组件902和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件914包括一个或多个传感器,用于为设备900提供各个方面的状态评估。例如,传感器组件914可以检测到设备900的打开/关闭状态,组件的相对定位,例如所述组件为设备900的显示器和小键盘,传感器组件914还可以检测设备900或设备900一个组件的位置改变,用户与设备900接触的存在或不存在,设备900方位或加速/减速和设备900的温度变化。传感器组件914可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件914还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件914还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件916被配置为便于设备900和其他设备之间有线或无线方式的通信。设备900可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信部件916经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件916还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,设备900可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器904,上述指令可由设备900的处理器920执行以完成本公开技术方案提供的方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的文件编辑方法、装置及电子设备,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (19)
1.一种文件编辑方法,其特征在于,包括:
第一用户关联的第一客户端获得目标文件后,对所述目标文件包括的可编辑节点信息进行展示;
确定待编辑的目标节点,并获得所述目标节点的第一节点状态信息,所述第一节点状态信息包括所述第一用户对所述目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
将所述第一节点状态信息提交到编辑服务端,以便所述编辑服务端将所述第一节点状态信息发送给对所述目标文件进行协同编辑的第二用户关联的第二客户端,所述第二客户端用于根据所述第一操作时间戳信息,以及第二用户对所述目标节点进行操作的第二操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息,并基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述编辑服务端发送的编辑状态信息,所述编辑状态信息包括处于编辑状态的节点的数量信息以及节点的标识信息,所述处于编辑状态的节点属于所述目标文件;
对所述编辑状态信息进行展示。
3.根据权利要求2所述的方法,其特征在于,
所述编辑状态信息还包括对所述处于编辑状态的节点进行编辑操作的用户的标识信息;
如果所述目标节点为处于编辑状态的节点,所述方法还包括:
在所述目标节点被选中的情况下,对编辑所述目标节点的用户的标识信息进行展示。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将所述目标节点的标识信息以及所述第一用户的标识信息提交到所述编辑服务端,以便所述编辑服务端对所述编辑状态信息进行更新。
5.根据权利要求1所述的方法,其特征在于,
所述第一操作行为信息包括:对所述目标节点进行删除操作、对所述目标节点进行移动操作、对与所述目标节点关联的新增节点进行插入操作、或者对所述目标节点关联的目标操作对象进行更新操作。
6.根据权利要求5所述的方法,其特征在于,
如果所述操作行为信息为对所述目标节点关联的目标操作对象进行更新操作,
所述方法还包括:
确定所述目标节点后,对所述目标节点关联的操作对象进行展示;
确定待编辑的目标操作对象,并获得所述目标操作对象对应的编辑信息,提交到所述编辑服务端。
7.根据权利要求6所述的方法,其特征在于,
所述操作对象为所述目标节点关联的样式信息,且所述样式信息包括多层级的细分属性;
如果所述目标操作对象为所述细分属性,则所述第一客户端提供的用于发送所述编辑信息的代码中包括:
表示所述目标操作对象对应的编辑信息的代码行,以及表示所述目标操作对象对应的属性层级信息的路径代码行。
8.根据权利要求7所述的方法,其特征在于,
通过特殊符号对所述属性层级信息进行分割,以便所述第二客户端根据所述特殊符号分割出的属性层级信息对所述目标操作对象进行定位。
9.一种文件编辑方法,其特征在于,包括:
第二用户关联的第二客户端获得编辑服务端发送的第一节点状态信息,所述第一节点状态信息包括第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
获得所述目标节点的第二节点状态信息,所述第二节点状态信息包括所述第二客户端对所述目标节点进行操作的第二操作时间戳信息;
根据所述第二操作时间戳信息以及所述第一操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息,并基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
10.根据权利要求9所述的方法,其特征在于,
如果所述第二操作时间戳信息早于所述第一操作时间戳信息,则所述同步操作的方式信息为接受同步操作,
所述基于所述同步操作的方式信息在本地对所述目标节点进行同步操作,包括:
根据所述第一操作行为信息对所述目标节点进行同步操作,并保存所述第一节点状态信息,将所述第一操作行为信息确定为对所述目标节点进行的最新操作。
11.根据权利要求9所述的方法,其特征在于,
如果所述第二操作时间戳信息晚于所述第一操作时间戳信息,则所述同步操作的方式信息为拒绝同步操作,
所述基于所述同步操作的方式信息在本地对所述目标节点进行同步操作,包括:
对所述第一节点状态信息进行舍弃处理。
12.一种文件编辑方法,其特征在于,包括:
编辑服务端获得第一用户关联的第一客户端提交的第一节点状态信息,所述第一节点状态信息包括所述第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息,所述目标节点属于目标文件;
向对所述目标文件进行协同编辑的第二用户关联的第二客户端发送所述第一节点状态信息,以便所述第二客户端根据所述第一节点状态信息对本地保存的目标节点进行同步操作。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
获得所述第一客户端发送的所述第一用户的标识信息;
对所述第一用户的标识信息以及所述第一节点状态信息进行关联,将获得的关联关系发送到所述第一客户端以及所述第二客户端进行展示。
14.一种文件编辑装置,其特征在于,应用于第一用户关联的第一客户端,包括:
可编辑节点信息展示单元,用于在获得目标文件后,对所述目标文件包括的可编辑节点信息进行展示;
第一节点状态信息获得单元,用于确定待编辑的目标节点,并获得所述目标节点的第一节点状态信息,所述第一节点状态信息包括所述第一用户对所述目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
第一节点状态信息提交单元,用于将所述第一节点状态信息提交到编辑服务端,以便所述编辑服务端将所述第一节点状态信息发送给对所述目标文件进行协同编辑的第二用户关联的第二客户端,所述第二客户端用于根据所述第一操作时间戳信息,以及第二用户对所述目标节点进行操作的第二操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息,并基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
15.一种文件编辑装置,其特征在于,应用于第二用户关联的第二客户端,包括:
第一节点状态信息获得单元,用于获得编辑服务端发送的第一节点状态信息,所述第一节点状态信息包括第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
第二节点状态信息获得单元,用于获得所述目标节点的第二节点状态信息,所述第二节点状态信息包括所述第二客户端对所述目标节点进行操作的第二操作时间戳信息;
同步操作方式确定单元,用于根据所述第二操作时间戳信息以及所述第一操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息;
同步操作单元,用于基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
16.一种文件编辑装置,其特征在于,应用于编辑服务端,包括:
第一节点状态信息获得单元,用于获得第一用户关联的第一客户端提交的第一节点状态信息,所述第一节点状态信息包括所述第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息,所述目标节点属于目标文件;
第一节点状态信息发送单元,用于向对所述目标文件进行协同编辑的第二用户关联的第二客户端发送所述第一节点状态信息,以便所述第二客户端根据所述第一节点状态信息对本地保存的目标节点进行同步操作。
17.一种电子设备,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获得目标文件后,对所述目标文件包括的可编辑节点信息进行展示;
确定待编辑的目标节点,并获得所述目标节点的第一节点状态信息,所述第一节点状态信息包括第一用户对所述目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
将所述第一节点状态信息提交到编辑服务端,以便所述编辑服务端将所述第一节点状态信息发送给对所述目标文件进行协同编辑的第二用户关联的第二客户端,所述第二客户端用于根据所述第一操作时间戳信息,以及第二用户对所述目标节点进行操作的第二操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息,并基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
18.一种电子设备,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获得编辑服务端发送的第一节点状态信息,所述第一节点状态信息包括第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息;
获得所述目标节点的第二节点状态信息,所述第二节点状态信息包括第二客户端对所述目标节点进行操作的第二操作时间戳信息;
根据所述第二操作时间戳信息以及所述第一操作时间戳信息,确定利用所述第一节点状态信息对所述目标节点进行同步操作的方式信息,并基于所述同步操作的方式信息在本地对所述目标节点进行同步操作。
19.一种电子设备,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获得第一用户关联的第一客户端提交的第一节点状态信息,所述第一节点状态信息包括所述第一用户对目标节点进行编辑操作的第一操作行为信息以及第一操作时间戳信息,所述目标节点属于目标文件;
向对所述目标文件进行协同编辑的第二用户关联的第二客户端发送所述第一节点状态信息,以便所述第二客户端根据所述第一节点状态信息对本地保存的目标节点进行同步操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910407281.5A CN112039929B (zh) | 2019-05-15 | 2019-05-15 | 文件编辑方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910407281.5A CN112039929B (zh) | 2019-05-15 | 2019-05-15 | 文件编辑方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112039929A CN112039929A (zh) | 2020-12-04 |
CN112039929B true CN112039929B (zh) | 2022-04-05 |
Family
ID=73575757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910407281.5A Active CN112039929B (zh) | 2019-05-15 | 2019-05-15 | 文件编辑方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112039929B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434174A (zh) * | 2021-06-28 | 2021-09-24 | 广联达科技股份有限公司 | 协同项目的配置方法、装置及电子设备 |
CN113535434A (zh) * | 2021-07-22 | 2021-10-22 | 北京字跳网络技术有限公司 | 一种数据节点的协同编辑方法、装置、存储介质及设备 |
CN115706809A (zh) * | 2021-08-17 | 2023-02-17 | 上海幻电信息科技有限公司 | 基于多人协作的资源处理方法、装置及系统 |
CN113992789A (zh) * | 2021-10-29 | 2022-01-28 | 维沃移动通信有限公司 | 图像处理方法及装置 |
CN116107472A (zh) * | 2021-11-10 | 2023-05-12 | 北京字节跳动网络技术有限公司 | 显示方法、装置、电子设备和存储介质 |
CN115001797A (zh) * | 2022-05-30 | 2022-09-02 | 广州慧睿思通科技股份有限公司 | 图形化数据处理方法、服务器、客户端、设备及存储介质 |
CN115510832B (zh) * | 2022-10-31 | 2024-06-04 | 北京字跳网络技术有限公司 | 信息同步处理方法、系统、装置、电子设备和存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119365B (zh) * | 2007-09-13 | 2012-09-05 | 复旦大学 | 大规模协同环境下的协同交互优化方法 |
US9158746B2 (en) * | 2012-06-13 | 2015-10-13 | International Business Machines Corporation | Managing concurrent editing in a collaborative editing environment using cursor proximity and a delay |
US20160048486A1 (en) * | 2014-08-13 | 2016-02-18 | R-Corporation | Multi-user stream collaborative document editing tool |
CN106354732B (zh) * | 2015-07-17 | 2019-07-05 | 中国石油化工股份有限公司 | 一种支持并发协同的离线数据版本冲突解决方法 |
KR101950422B1 (ko) * | 2017-08-10 | 2019-02-20 | (주)사이냅소프트 | 편집 권한 설정을 지원하는 공동 편집을 위한 문서 편집 시스템 및 방법 |
CN107656988B (zh) * | 2017-09-12 | 2020-04-07 | 北京北信源软件股份有限公司 | 文档编辑方法及系统 |
CN108269063A (zh) * | 2018-01-25 | 2018-07-10 | 中国地质大学(武汉) | word文档在线协同编辑方法及系统 |
-
2019
- 2019-05-15 CN CN201910407281.5A patent/CN112039929B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112039929A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112039929B (zh) | 文件编辑方法、装置及电子设备 | |
EP3144809A1 (en) | Method and apparatus for displaying multimedia information | |
CN107566892B (zh) | 视频文件处理方法、装置及计算机可读存储介质 | |
CN113300938B (zh) | 消息发送方法、装置及电子设备 | |
CN110737844B (zh) | 推荐数据的方法、装置、终端设备和存储介质 | |
US11379180B2 (en) | Method and device for playing voice, electronic device, and storage medium | |
CN108804179B (zh) | 显示通知栏消息的方法、装置、终端及存储介质 | |
CN108111396B (zh) | 对话消息排序方法、装置及设备 | |
US20220038405A1 (en) | Method and apparatus for updating group member data, and terminal, system and storage medium | |
US20150350120A1 (en) | Method and device for managing instant message | |
CN113157366A (zh) | 动画播放方法、装置、电子设备和存储介质 | |
CN110704647A (zh) | 一种内容处理方法及装置 | |
CN114025180A (zh) | 一种游戏操作同步系统、方法、装置、设备及存储介质 | |
CN113596175A (zh) | 场景同步方法、终端、服务器及系统 | |
CN110913276B (zh) | 数据处理的方法、装置、服务器、终端及存储介质 | |
CN111835617B (zh) | 用户头像调整方法、装置及电子设备 | |
CN109245992B (zh) | 请求处理方法、装置、电子设备及存储介质 | |
CN116595957A (zh) | 报表搭建页面提供方法、协同编辑方法、电子设备 | |
CN114430370B (zh) | 网络切片的确定方法、装置、设备及存储介质 | |
CN113128181B (zh) | 一种信息处理方法及装置 | |
CN114567790A (zh) | 一种信息显示方法、装置、电子设备及存储介质 | |
CN111526084A (zh) | 信息处理方法、装置、设备及存储介质 | |
CN113868562A (zh) | 资源获取方法、装置、系统、电子设备及可读存储介质 | |
RU2633163C2 (ru) | Способ и устройство для синхронизации фотографий | |
CN112770185B (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 |