协同编辑一般会有多种模式来防止成员之间的覆盖操作。
这里简单讲下防止覆盖方式和原理。
防止整个文档被覆盖
协同编辑有在线编辑和调用本地程序编辑文档两种方式,先讲在线编辑。
在线编辑
在线编辑其实是在服务器端解析要编辑的文档,然后编辑者通过网页访问同一个文档,在同一个文档内编辑内容,就是说大家编辑的数据源其实是同一个,并且能实时看到编辑结果。所以,在线编辑一般不会出现整个文档被某个新的文档覆盖的情况。
所以,在线编辑支持多人实时同步编辑同一个文档。
但也会有特殊的极端情况,因为浏览器是有缓存的,所以如果在编辑过程中突然断网或者网络连接不畅、甚至长时间不编辑造成链接session失效,就会造成用户编辑的内容和服务器端不一致的冲突。目前一般在线编辑器的解决方案是:
- 不断监测连接情况,如果连不上服务器,就禁止连接的用户编辑(变成只读)
- 如果出现数据不一致,就会提示用户刷新页面,以保证数据一致性。
- 再次恢复网络时,自动刷新重连。
这些方式可以有效防止在线编辑出现文档版本冲突然后被覆盖的情况。
利用客户端调用本地程序异步编辑、映射盘或虚拟盘协作编辑
有时候我们需要用本地程序来编辑文档进行协作,特别是一些不能通过在线编辑的文件类型。这种方式相当于下载文件到本地,然后用本地应用编辑后再上传到云端。只是客户端把这些操作自动化了,只要客户端在文件上右键就可以编辑,编辑完自动保存上传到云端。
映射盘或虚拟盘的原理也相同。
如果多人都凑巧同时编辑了同一个文件,然后各自上传各自的,文件就很容易互相覆盖。那这个问题怎么解决呢?
采用锁定机制防止成员间文档被覆盖
如果有一个成员编辑某个文档了,系统就给这个文档上个锁,其他用户就无法编辑这个文档,只能只读这个文档但不能保存,当编辑的成员结束编辑后,系统给这个文档解锁,文档解锁后其他人就可以编辑了。
只要有一个人在编辑,文档就枷锁,加速的文档其他人不能编辑。
但是,也会有极端特殊情况,譬如某个成员编辑时断网了或者关闭了客户端,锁定失效了,在这个过程中有其他人打开编辑了文档并保存了。
这个时候如果再次接入网络,就会弹出冲突提示
这个时候,用户可以选择他觉得最正确的版本作为当前版本。同时另一个版本也会上传为上一个版本防止丢失。
版本管理
最终极的防止文档被覆盖的方式就是版本管理。可以说,有版本管理的协作系统或者文件系统是不存在文档被覆盖的可能的。
因为文档的所有更改保存的都是一个新版本,而不是覆盖的方式。
防止在线协同编辑时的内容覆盖
如果使用在线编辑同一个文档时,怎么能保证你编辑的内容不被同事编辑覆盖呢?或者,你在编辑的段落怎么防止别人也同时编辑?
这里也有很多功能保证在线协同编辑时的有序(不互相改内容)
锁定编辑区域
显示别人正在编辑的标记
某个段落有其他人在编辑,就实时显示编辑者的正在编辑标记,提示用户这里别人正在编辑
跟踪文件变化
协同编辑发展到现在已经是一个很成熟的工作方式了,有一系列的方式避免成员之间的文档覆盖,请放心使用。
如果你有协同编辑,共享文件的需求,可以试试我们的产品,巴别鸟企业网盘,访问我们的官网注册即可使用哦。
推荐注册企业公有云版本,功能更加强大好用。