开发在线文档时,这个技术难点你解决了吗?
SegmentFault
共 3492字,需浏览 7分钟
·
2021-08-01 18:53
什么是多人协作?
操作化 可传输 可还原
传输内容 原始文本 清晰 冗余 压缩技术 逻辑压缩 协议压缩 手动压缩 网络协议 Socket TCP UDP HTTP WebSocket QoS(Quality of Service,服务质量) 快速失败 自动回滚 自动重连 自动恢复
绝对操作的还原 控制体积 合理的提示 相对操作的还原 严格的顺序性 从源头保障顺序性 顺序性的补救 本地操作的还原 过滤收到的操作集合 从源头细化操作颗粒 本地保存本地执行 无入侵的还原 定义入侵 排除入侵 千人千面
多人协作有哪些技术难点?
避免产生冲突,即不让多个用户同时编辑同一处地方。该解决方法简单粗暴,使用时需具体查看产品形态是否适合该方案。
把冲突暴露给用户,让用户自己解决。目前大多数专业的版本控制软件采用了该方法,但它不适用于拥有大量非专业用户的产品,如在线文档。
给写入操作打上全局 index,可以是时间戳或序列号,该 index 必须是全局的且递增。在任何冲突的地方,都选择 index 较高的那个写入。该方法的优势在于冲突的解决是完全自动化的,不需要用户参与。缺点就是如果遇到同步间隔很长的情况,会丢失很多用户的输入。
retain(n):保持 n 个字符
insert(str):插入字符 str
delete(str):删除字符 str
实现多人协作的突破口在哪里?
用于多人协作的表格组件需要具备哪些功能?
结语
评论
实现一个多人协作在线文档有哪些技术难点?
摘抄一个google到的文章:原文连接
实时协同编辑的实现 - FEX
浅谈协同编辑的实现:
什么是实时协同编辑
这里所说的实时协同编辑,是指多人同时编辑一个文档,最典型的例子是 Google Docs,你可以实时看到别人做出的修改,不用手动刷新页面。
要实现实时编辑,我们需要解决两个技术点:实时通信问题、编辑冲突问题,其中实时通信问题比较好解决,可以使用 long pull 或 WebSocket,所以这里就不过多讨论了,重点将放在如何解决编辑冲突问题上。
可选方案
接下来将从易至难的顺序来介绍几种可行的方案,分别是:「编辑锁」、「GNU diff-patch」、「Myer’s diff-patch」、「Ope
互联网编程
0
在线文档,你用过哪一个?
不知大家有没有在线编辑文档的习惯
在线编辑文档有许多好处
比如:多平台同步、协作编辑等
今天给大家推荐三款在线文档软件
—— 金山文档、腾讯文档、石墨文档
限于篇幅,这里仅介绍它们对应的
Windows 端、安卓端、微信小程序
我把软件特点整理成表格,供大家参考
一、金山文档
多平台协作对协作办公十分方便
1、网页版
主界面
左端可以新建文字、表格、演示、流程图、思维导图、便笺、表单、共享文件夹等
新建文字,有海量模板免费使用
编辑界面有文字的基本编辑功能
可以分享文档和协同办公
右边可以新建表单
2、安卓端
编辑功能比较简单
三大模块:最近、我的文档、我
安装包大小:1.5M
3、微信
松鼠小
0
WebFundamentalsWeb 开发技术文档中心
WebFundamentals 是多设备的 Web 开发技术文档中心。我们的目标是为现代 Web 开
WebFundamentalsWeb 开发技术文档中心
0