文档编辑方法及系统转让专利

申请号 : CN201710817996.9

文献号 : CN107656988B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈海龙高曦毕永东

申请人 : 北京北信源软件股份有限公司

摘要 :

本发明提供一种文档编辑方法及系统。所述方法应用于文档编辑系统,所述系统包括通信连接的服务器及至少一个客户端,服务器中存储有文档原件。所述方法包括:各个客户端向服务器发送获取文档原件的获取请求;服务器接收获取请求,并向各个客户端发送文档原件作为可供各个客户端编辑的文档副本;各个客户端接收在显示层对文档副本的编辑操作,并根据编辑操作向服务器发送更新请求;服务器在接收的更新请求中选择一个客户端的更新请求,将文档原件根据更新请求进行更新,并对其他客户端的文档副本进行对应更新。由此,可以使多人同时在线编辑相同文档,提高了工作效率,同时将各个客户端的编辑内容均保存,保证了内容的完整。

权利要求 :

1.一种文档编辑方法,其特征在于,应用于文档编辑系统,所述系统包括通信连接的服务器及至少一个客户端,所述服务器中存储有文档原件,所述方法包括:各个客户端向所述服务器发送获取文档原件的获取请求;

所述服务器接收所述获取请求,并向各个客户端发送所述文档原件作为可供各个客户端编辑的文档副本;

各个客户端接收在显示层对所述文档副本的编辑操作,并根据所述编辑操作向所述服务器发送更新请求;

所述服务器在接收的更新请求中选择一个客户端的更新请求,将所述文档原件根据所述更新请求进行更新,并对其他客户端的文档副本进行对应更新;

其中,所述获取请求包括客户端的标识信息,所述更新请求包括时间戳,所述服务器中存储有最近更新的时间戳,所述服务器在接收的更新请求中选择一个客户端的更新请求,将所述文档原件根据所述更新请求进行更新,并对其他客户端的文档副本进行对应更新的步骤包括:所述服务器将所述更新请求中的时间戳与存储的最近更新的时间戳进行比对;

所述服务器在所述更新请求中的时间戳与存储的最近更新的时间戳一致时,根据所述更新请求对文档原件进行更新,并生成与本次更新对应的时间戳;

所述服务器在完成对文档原件的更新后,向与所述更新请求对应的客户端返回更新成功的回复信息及与本次更新对应的时间戳;

所述服务器根据其他客户端的标识信息向其他客户端发送更新指令,以使其他客户端中保存的文档副本完成对应更新,其中,所述更新指令包括时间戳;

所述服务器在所述更新请求中的时间戳与存储的最近更新的时间戳不一致时,拒绝所述客户端的更新请求。

2.根据权利要求1所述的方法,其特征在于,所述各个客户端接收在显示层对所述文档副本的编辑操作,并根据所述编辑操作向所述服务器发送更新请求的步骤包括:各个客户端接收在显示层对文档副本的编辑操作,并根据编辑操作生成文档变更消息;

各个客户端将文档变更消息按照时间顺序添加到未更新队列中;

各个客户端根据所述未更新队列按照先进先出的顺序向所述服务器发送更新请求,其中,所述更新请求包括文档变更消息。

3.根据权利要求2所述的方法,其特征在于,其中,所述文档变更消息包括文档变更内容及与文档变更内容对应的文档变更位置,所述更新指令包括所述文档变更消息,所述根据所述更新请求对文档原件进行更新的步骤包括:所述服务器根据所述文档变更内容及与文档变更内容对应的文档变更位置对所述文档原件进行更新。

4.根据权利要求3所述的方法,其特征在于,所述服务器在接收的更新请求中选择一个客户端的更新请求,将所述文档原件根据所述更新请求进行更新,并对其他客户端的文档副本进行对应更新的步骤之后,所述方法还包括:其他客户端根据所述服务器的更新指令对本地保存的文档副本进行对应更新;

其他客户端对显示层进行刷新,使所述显示层显示更新后的文档副本及与未更新队列对应的内容。

5.一种文档编辑系统,其特征在于,所述系统包括通信连接的服务器及至少一个客户端,所述服务器中存储有文档原件,各个客户端用于向所述服务器发送获取文档原件的获取请求;

所述服务器用于接收所述获取请求,并向各个客户端发送所述文档原件作为可供各个客户端编辑的文档副本;

各个客户端还用于接收在显示层对所述文档副本的编辑操作,并根据所述编辑操作向所述服务器发送更新请求;

所述服务器还用于在接收的更新请求中选择一个客户端的更新请求,将所述文档原件根据所述更新请求进行更新,并对其他客户端的文档副本进行对应更新;

其中,所述获取请求包括客户端的标识信息,所述更新请求包括时间戳,所述服务器中存储有最近更新的时间戳,所述服务器在接收的更新请求中选择一个客户端的更新请求,将所述文档原件根据所述更新请求进行更新,并对其他客户端的文档副本进行对应更新的方式包括:所述服务器将所述更新请求中的时间戳与存储的最近更新的时间戳进行比对;

所述服务器在所述更新请求中的时间戳与存储的最近更新的时间戳一致时,根据所述更新请求对文档原件进行更新,并生成与本次更新对应的时间戳;

所述服务器在完成对文档原件的更新后,向与所述更新请求对应的客户端返回更新成功的回复信息及与本次更新对应的时间戳;

所述服务器根据其他客户端的标识信息向其他客户端发送更新指令,以使其他客户端中保存的文档副本完成对应更新,其中,所述更新指令包括时间戳;

所述服务器在所述更新请求中的时间戳与存储的最近更新的时间戳不一致时,拒绝所述客户端的更新请求。

6.根据权利要求5所述的系统,其特征在于,各个客户端接收在显示层对所述文档副本的编辑操作,并根据所述编辑操作向所述服务器发送更新请求的方式包括:各个客户端接收在显示层对文档副本的编辑操作,并根据编辑操作生成文档变更消息;

各个客户端将文档变更消息按照时间顺序添加到未更新队列中;

各个客户端根据所述未更新队列按照先进先出的顺序向所述服务器发送更新请求,其中,所述更新请求包括文档变更消息。

7.根据权利要求6所述的系统,其特征在于,其中,所述文档变更消息包括文档变更内容及与文档变更内容对应的文档变更位置,所述更新指令包括所述文档变更消息,所述服务器根据所述更新请求对文档元件进行更新的方式包括:所述服务器根据所述文档变更内容及与文档变更内容对应的文档变更位置对所述文档原件进行更新。

8.根据权利要求7所述的系统,其特征在于,

其他客户端还用于根据所述服务器的更新指令对本地保存的文档副本进行对应更新;

其他客户端还用于对显示层进行刷新,使所述显示层显示更新的文档副本及与未更新队列对应的内容。

说明书 :

文档编辑方法及系统

技术领域

[0001] 本发明涉及数据传输领域,具体而言,涉及一种文档编辑方法及系统。

背景技术

[0002] 在现有技术中,多人编辑相同文档一般采取的是Svn或拷贝/共享的方式。Svn的方式是指用户A从svn服务器上下载文档,对文档进行编辑,再将编辑后的文档更新到文档svn服务器,用户B从svn服务器上下载相同文档后,对文档进行编辑,再将编辑后的文档更新到svn服务器,如此反复。
[0003] 拷贝/共享的方式是指用户A将文档编辑后拷贝/共享给用户B,用户B编辑完此文档后再拷贝/共享给用户A,如此反复。
[0004] 上述两种方式的不足在于两人无法同步编辑相同文档,在同一时间只能一人编辑文档,工作效率较低。

发明内容

[0005] 为了克服现有技术中的上述不足,本发明所要解决的技术问题是提供一种文档编辑方法及系统,其能够使多人同时在线编辑相同文档,提高了工作效率。
[0006] 本发明提供一种文档编辑方法,应用于文档编辑系统,所述系统包括通信连接的服务器及至少一个客户端,所述服务器中存储有文档原件,所述方法包括:
[0007] 各个客户端向所述服务器发送获取文档原件的获取请求;
[0008] 所述服务器接收所述获取请求,并向各个客户端发送所述文档原件作为可供各个客户端编辑的文档副本;
[0009] 各个客户端接收在显示层对所述文档副本的编辑操作,并根据所述编辑操作向所述服务器发送更新请求;
[0010] 所述服务器在接收的更新请求中选择一个客户端的更新请求,将所述文档原件根据所述更新请求进行更新,并对其他客户端的文档副本进行对应更新。
[0011] 本发明提供一种文档编辑系统,所述系统包括通信连接的服务器及至少一个客户端,所述服务器中存储有文档原件,
[0012] 各个客户端用于向所述服务器发送获取文档原件的获取请求;
[0013] 所述服务器用于接收所述获取请求,并向各个客户端发送所述文档原件作为可供各个客户端编辑的文档副本;
[0014] 各个客户端还用于接收在显示层对所述文档副本的编辑操作,并根据所述编辑操作向所述服务器发送更新请求;
[0015] 所述服务器还用于在接收的更新请求中选择一个客户端的更新请求,将所述文档原件根据所述更新请求进行更新,并对其他客户端的文档副本进行对应更新。
[0016] 相对于现有技术而言,本发明具有以下有益效果:
[0017] 本发明提供一种文档编辑方法及系统。所述方法应用于文档编辑系统。所述系统包括通信连接的服务器及至少一个客户端,其中,所述服务器中存储有文档原件。所述服务器在接收各个客户端发送的获取文档原件的请求后,将所述文档原件发送给各个客户端,以作为可供各个客户端编辑的文档副本。各个客户端根据接收的在显示层对文档副本的编辑操作,向所述服务器发送与编辑操作对应的更新请求。所述服务器在接收更新的请求中选择一个客户端的更新请求,根据该客户端的更新请求对所述文档原件进行更新,并对其他客户端的文档副本进行对应更新。由此,可以使多人同时在线编辑相同文档,提高了工作效率,同时将各个客户端的编辑内容均保存,保证了内容的完整。
[0018] 为使发明的上述目的、特征和优点能更明显易懂,下文特举本发明较佳实施例,并配合所附附图,作详细说明如下。

附图说明

[0019] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0020] 图1是本发明较佳实施例提供的文档编辑系统的方框示意图。
[0021] 图2是图1中服务器的方框示意图。
[0022] 图3是图2中客户端的方框示意图。
[0023] 图4是本发明较佳实施例提供的文档编辑方法的流程示意图之一。
[0024] 图5是图4中步骤S130包括的子步骤的流程示意图。
[0025] 图6是图4中步骤S140包括的子步骤的流程示意图之一。
[0026] 图7是图4中步骤S140包括的子步骤的流程示意图之二。
[0027] 图8是本发明较佳实施例提供的文档编辑方法的流程示意图之二。
[0028] 图标:10-文档编辑系统;100-服务器;110-第一存储器;120-第一存储控制器;130-第一处理器;200-客户端;210-第二存储器;220-第二存储控制器;230-第二处理器;
240-输入单元。

具体实施方式

[0029] 下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0030] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0031] 下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
[0032] 请参照图1,图1是本发明较佳实施例提供的文档编辑系统10的方框示意图。所述文档编辑系统10可以通信连接的服务器100及至少一个客户端200。客户端200用于根据接收的操作向所述服务器100发送与操作对应的请求,所述服务器100在接收的请求中选择一个请求,对该请求进行响应,并将响应内容发送给其他客户端200以进行同步。
[0033] 请参照图2,图2是图1中服务器100的方框示意图。所述服务器100可以是独立服务器,也可以是由多个独立服务器组成的集成服务器。所述服务器100可以包括:第一存储器110、第一存储控制器120及第一处理器130。
[0034] 所述第一存储器110、第一存储控制器120及第一处理器130各元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。第一存储器110中存储有用于处理客户端200请求的软件。所述第一处理器130通过运行存储在第一存储器110内的软件程序以及模块,从而执行各种功能应用以及数据处理。
[0035] 其中,所述第一存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,第一存储器110用于存储程序,所述第一处理器130在接收到执行指令后,执行所述程序。所述第一处理器130以及其他可能的组件对第一存储器110的访问可在所述第一存储控制器120的控制下进行。
[0036] 所述第一处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的第一处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0037] 可以理解,图2所示的结构仅为示意,服务器100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
[0038] 请参照图3,图3是图2中客户端200的方框示意图。所述客户端200可以是,但不限于,台式电脑、平板电脑等。所述客户端200可以包括第二存储器210、第二存储控制器220、第二处理器230及输入单元240。
[0039] 所述输入单元240可以是鼠标、键盘等。用户可以通过所述输入单元240对客户端200中存储的文件进行编辑操作。
[0040] 其中,所述第二存储器210、第二存储控制器220及第二处理器230与图2中的第一存储器110、第一存储控制器120及第一处理器130的硬件配置相同,在此就不再一一介绍。
[0041] 第一实施例
[0042] 请参照图4,图4是本发明较佳实施例提供的文档编辑方法的流程示意图之一。所述方法应用于文档编辑系统10。下面对文档编辑方法的具体流程进行详细阐述。
[0043] 步骤S110,各个客户端200向所述服务器100发送获取文档原件的获取请求。
[0044] 在本实施例中,所述服务器100与至少一个客户端200通信连接。其中,所述服务器100中存储有文档原件。为了使多个用户可同时编辑同一份文档,各个客户端200将获取文档原件的获取请求发送给所述服务器100,以使各个客户端200中存储有与所述服务器100中文档原件相同的文档。
[0045] 步骤S120,所述服务器100接收所述获取请求,并向各个客户端200发送所述文档原件作为可供各个客户端200编辑的文档副本。
[0046] 在本实施例中,所述服务器100在接收各个客户端200发送的获取请求后,将存储的文档原件发送给各个客户端200,以作为可供各个客户端200编辑的文档副本。
[0047] 步骤S130,各个客户端200接收在显示层对所述文档副本的编辑操作,并根据所述编辑操作向所述服务器100发送更新请求。
[0048] 请参照图5,图5是图4中步骤S130包括的子步骤的流程示意图。所述步骤S130可以包括子步骤S131、子步骤S132及子步骤S133。
[0049] 子步骤S131,各个客户端200接收在显示层对文档副本的编辑操作,并根据编辑操作生成文档变更消息。
[0050] 在本实施例中,用户在显示层对文档副本进行编辑操作,各个客户端200根据对应用户的编辑操作,在显示层显示编辑后的文档副本,并生成与编辑操作对应的文档变更消息。
[0051] 子步骤S132,各个客户端200将文档变更消息按照时间顺序添加到未更新队列中。
[0052] 在本实施例中,各个客户端200分别建立一用于存储文档变更消息的未更新队列。在生成文档变更消息后,各个客户端200分别将生成的文档变更消息按照时间顺序添加到所述未更新队列中。比如,文档变更消息1先生成,文档变更消息2后生成,则先将文档变更消息1先添加到所述未更新队列中,然后将文档变更消息2添加到所述未更新队列中。
[0053] 子步骤S133,各个客户端200根据所述未更新队列按照先进先出的顺序向所述服务器100发送更新请求。
[0054] 在本实施例中,各个客户端200根据各自的未更新队列按照先进先出的顺序向所述服务器100发送更新请求。其中,所述更新请求包括文档变更消息。比如,一客户端200的所述未更新队里中根据时间顺序依次添加了文档变更消息1及文档变更消息2,也就是说,文档变更消息1先生成,文档变更消息2后生成,该客户端200先根据文档变更消息1向服务器100发送更新请求,在服务器100根据包括文档变更消息1的更新请求进行更新后,再根据文档变更消息2向服务器100发送更新请求。
[0055] 在本实施例的实施方式中,各个客户端200可以在生成文档变更消息,且将该文档变更消息添加到未更新队列后,根据所述未更新队列向服务器100发送更新请求。各个客户端200也可以定时向服务器100发送更新请求。
[0056] 步骤S140,所述服务器100在接收的更新请求中选择一个客户端200的更新请求,将所述文档原件根据所述更新请求进行更新,并对其他客户端200的文档副本进行对应更新。
[0057] 在本实施例中,由于多个客户端200同时更新服务器100中的一个文档原件,必须保证服务器100中的文档原件的内容与各个客户端200的文档副本不包括与未更新队列对应的内容外的内容一致,否则会出现混乱。因此,若所述服务器100只接收到一个客户端200的更新请求时,根据该更新请求对文档原件及其他客户端200的文档副本进行对应更新。若所述服务器100接收到多个客户端200的更新请求时,所述服务器100在接收的多个更新请求中选择一个客户端200的更新请求进行响应,并拒绝其他客户端200的更新请求。进一步,被拒绝的客户端200将与被拒绝的更新请求对应的文档变更消息依旧保存在所述未更新队列中,以根据该文档变更消息再次向所述服务器100发送更新消息。
[0058] 请参照图6,图6是图4中步骤S140包括的子步骤的流程示意图之一。所述步骤S140可以包括步骤S143、子步骤S144及子步骤S145。
[0059] 子步骤S143,所述服务器100根据所述文档变更内容及与文档变更内容对应的文档变更位置对所述文档原件进行更新,并生成与本次更新对应的时间戳。
[0060] 在本实施例中,所述文档变更消息包括文档变更内容及与文档变更内容对应的文档变更位置。所述服务器100根据与编辑操作对应的文档变更内容及文档变更位置对存储的文档原件进行更新,以对该客户端200的更新请求进行响应。所述服务器100在根据该文档变更消息对文档原件进行更新时,生成并保存与此次更新对应的时间戳。其中,时间戳通常是一个字符序列,唯一地标识某一刻的时间。
[0061] 子步骤S144,所述服务器100在完成对文档原件的更新后,向与所述更新请求对应的客户端200返回更新成功的回复信息及与本次更新对应的时间戳。
[0062] 在本实施例中,所述服务器100根据一客户端200的更新请求对文档原件完成更新后,向该客户端200返回更新成功的回复信息。进一步地,所述服务器100将与本次更新的时间戳发送给该客户端200进行保存,以确保该客户端200中存储有最近更新的时间戳。
[0063] 在本实施例的实施方式中,在该客户端200收到服务器100发送的更新成功的回复信息后,该客户端200可以将与本次更新对应的文档变更消息从所述未更新队列移除,以确保未更新队列中的文档变更消息表示的编辑内容是服务器100还没有进行更新的内容,也就是说,与所述服务器100需要进行更新的内容对应的文档变更消息都存储在未更新队列中。
[0064] 子步骤S145,所述服务器100根据其他客户端200的标识信息向其他客户端200发送更新指令,以使其他客户端200中保存的文档副本完成对应更新。
[0065] 在本实施例中,各个客户端200向所述服务器100发送的获取请求可以包括自身的标识信息,比如,IP地址、MAC(Media Access Control,介质访问控制)地址等。在所述服务器100根据一客户端200的更新请求对文档原件进行更新后,所述服务器100根据其他客户端200各自的标识信息向各个客户端200(除与响应的更新请求对应的客户端200)发送更新指令,从而保证各个客户端200中保存的文档副本与所述服务器100中存储的文档原件一致。
[0066] 在本实施例的一种实施方式中,所述更新指令包括更新后的文档副本。所述服务器100可以将更新后的文档副本发送给其他各个客户端200,由此保证各个客户端200保存的文档副本与服务器100更新后的文档原件保持一致。
[0067] 在本实施例的另一种实施方式中,所述更新指令包括文档变更消息。所述服务器100根据一客户端200发送的更新请求中的文档变更消息对文档原件进行更新后,将该文档变更消息发送给其他各个客户端200,以使其他客户端200根据该文档变更消息完成对文档副本的更新。
[0068] 进一步地,所述更新指令还可以包括与本次更新对应的时间戳。所述服务器100可以根据该时间戳判断客户端200中保存的文档副本与服务器100中更新后的文档原件是否一致。
[0069] 请参照图7,图7是图4中步骤S140包括的子步骤的流程示意图之二。步骤S140还可以包括子步骤S141及子步骤S142。
[0070] 子步骤S141,所述服务器100将所述更新请求中的时间戳与存储的最近更新的时间戳进行比对,判断更新请求中的时间戳与存储的最近更新的时间戳是否一致。
[0071] 在本实施例中,所述更新请求还可以包括时间戳。若各个客户端200均为第一次向服务器100发送更新请求,各个客户端200发送的更新请求中的时间戳可以为空。若各个客户端200中存在客户端200向服务器100发送过更新请求,也就是说,各个客户端200中存储有服务器100发送的时间戳,各个客户端200将各自存储的最新的时间戳发送给所述服务器100。所述服务器100通过判断更新请求中的时间戳与存储的最近更新的时间戳是否一致,以判断是否根据该客户端200的更新请求进行更新。
[0072] 若不一致,则执行子步骤S142。
[0073] 子步骤S142,拒绝客户端200的更新请求。
[0074] 在本实施例中,由于所述服务器100根据一客户端200的更新请求完成更新后,所述服务器100会将其他客户端200的文档副本进行同步更新,同时向其他客户端200发送与本次更新对应的时间戳。因此,若更新请求中的时间戳与存储的最近更新的时间戳不一致,则表征所述服务器100存储的文档原件与该客户端200中存储的文档副本内容不一致,也就是说,服务器100中文档副本已根据其他客户端200的更新请求完成更新,而该客户端200未完成同步更新。所述服务器100拒绝该客户端200的更新请求,并向该客户端200发送拒绝更新的回复信息。
[0075] 若一致,则执行子步骤S143。
[0076] 子步骤S143,根据所述更新请求中的文档变更消息对文档原件进行更新。
[0077] 在本实施例中,若更新请求中的时间戳与存储的最近更新的时间戳一致,则表征所述服务器100存储的文档原件与该客户端200中存储的文档副本内容一致,也就是说,该客户端200已完成同步更新。所述服务器100根据该客户端200的更新请求对文档原件进行更新,并向该客户端200发送更新成功的回复信息及与本次更新对应的时间戳。
[0078] 进一步,所述服务器100在根据当前选择的客户端200的更新请求完成更新,并将更新指令发送给其他客户端200后,或在拒绝一客户端200的更新请求后,所述服务器100再次接收更新请求,并在接收的更新请求中选择一个客户端200的更新请求进行更新或拒绝。
[0079] 图8是本发明较佳实施例提供的文档编辑方法的流程示意图之二。所述方法还可以包括步骤S150及步骤S160。
[0080] 步骤S150,其他客户端200根据所述服务器100的更新指令对本地保存的文档副本进行对应更新。
[0081] 在本实施例中,其他客户端200在接收服务器100发送的更新指令后,根据该更新指令对文档副本进行更新,以保证各个客户端200中保存的文档副本与服务器100中的文档原件一致。
[0082] 步骤S160,其他客户端200对显示层进行刷新,使所述显示层显示更新后的文档副本及与未更新队列对应的内容。
[0083] 在本实施例中,其他客户端200对文档副本完成更新后,显示层需要进行刷新,否则显示层可能只显示该客户端200编辑后的文档内容或只显示该客户端200对保存的文档副本进行更新后的内容。因此,其他客户端200对显示层进行刷新,使所述显示层显示更新后的文档副本及与未更新队列对应的内容,也就是说,显示层显示的内容包括与服务器100中文档原件一致的文档副本及该客户端200未更新队列表示的编辑内容。由此,对于位置重复的编辑,没有采取覆盖原则,而是采用共存的方式,保证了内容的完整。
[0084] 进一步地,若未更新队列表示的编辑内容在跟更新前的文档副本中的位置与在更新后的文档副本中的位置不同,客户端200则可以在完成更新指令及对显示层进行刷新后,根据显示层显示的内容对所述未更新队列中文档变更消息的文档变更位置进行对应更新。
[0085] 第二实施例
[0086] 请再次参照图1,本发明较佳实施例还提供一种文档编辑系统10。所述文档编辑系统10包括通信连接的服务器100及至少一个客户端200,所述服务器100中存储有文档原件。
[0087] 各个客户端200用于向所述服务器100发送获取文档原件的获取请求。
[0088] 所述服务器100用于接收所述获取请求,并向各个客户端200发送所述文档原件作为可供各个客户端200编辑的文档副本。
[0089] 各个客户端200还用于接收在显示层对所述文档副本的编辑操作,并根据所述编辑操作向所述服务器100发送更新请求。
[0090] 在本实施例中,各个客户端200接收在显示层对所述文档副本的编辑操作,并根据所述编辑操作向所述服务器100发送更新请求的方式包括:
[0091] 各个客户端200接收在显示层对文档副本的编辑操作,并根据编辑操作生成文档变更消息;
[0092] 各个客户端200将文档变更消息按照时间顺序添加到未更新队列中;
[0093] 各个客户端200根据所述未更新队列按照先进先出的顺序向所述服务器100发送更新请求,其中,所述更新请求包括文档变更消息。
[0094] 所述服务器100还用于在接收的更新请求中选择一个客户端200的更新请求,将所述文档原件根据所述更新请求进行更新,并对其他客户端200的文档副本进行对应更新。
[0095] 在本实施例中,所述获取请求包括客户端200的标识信息,所述文档变更消息包括文档变更内容及与文档变更内容对应的文档变更位置。所述服务器100在接收的更新请求中选择一个客户端200的更新请求,将所述文档原件根据所述更新请求进行更新,并对其他客户端200的文档副本进行对应更新的方式包括:
[0096] 所述服务器100根据所述文档变更内容及与文档变更内容对应的文档变更位置对所述文档原件进行更新,并生成与本次更新对应的时间戳;
[0097] 所述服务器100在完成对文档原件的更新后,向与所述更新请求对应的客户端200返回更新成功的回复信息及与本次更新对应的时间戳;
[0098] 所述服务器100根据其他客户端200的标识信息向其他客户端200发送更新指令,以使其他客户端200中保存的文档副本完成对应更新,其中,所述更新指令包括所述文档变更消息及时间戳。
[0099] 在本实施例中,所述更新请求还包括一时间戳,所述服务器100中存储有最近更新的时间戳。所述服务器100在接收的更新请求中选择一个客户端200的更新请求,将所述文档原件根据所述更新请求进行更新,并对其他客户端200的文档副本进行对应更新的方式还可以包括:
[0100] 所述服务器100将所述更新请求中的时间戳与存储的最近更新的时间戳进行比对;
[0101] 所述服务器100在所述更新请求中的时间戳与存储的最近更新的时间戳一致时,根据所述更新请求中的文档变更消息对文档原件进行更新;
[0102] 所述服务器100在所述更新请求中的时间戳与存储的最近更新的时间戳不一致时,拒绝所述客户端200的更新请求。
[0103] 其他客户端200还用于根据所述服务器100的更新指令对本地保存的文档副本进行对应更新;
[0104] 其他客户端200还用于对显示层进行刷新,使所述显示层显示更新的文档副本及与未更新队列对应的内容。
[0105] 综上所述,本发明提供一种文档编辑方法及系统。所述方法应用于文档编辑系统。所述系统包括通信连接的服务器及至少一个客户端,其中,所述服务器中存储有文档原件。
所述服务器在接收各个客户端发送的获取文档原件的请求后,将所述文档原件发送给各个客户端,以作为可供各个客户端编辑的文档副本。各个客户端根据接收的在显示层对文档副本的编辑操作,向所述服务器发送与编辑操作对应的更新请求。所述服务器在接收更新的请求中选择一个客户端的更新请求,根据该客户端的更新请求对所述文档原件进行更新,并对其他客户端的文档副本进行对应更新。由此,可以使多人同时在线编辑相同文档,提高了工作效率,同时将各个客户端的编辑内容均保存,保证了内容的完整。
[0106] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。