• 每个字符的全局唯一ID
  • 字符的全局索引(可以使用tree方便insert)

  • LocalInsert, LocalDelete, RemoteDelete, RemoteInsert

和OT比较明显的区别就是:

  1. OT没有对字符赋予ID
  2. OT没有用比较复杂的数据结构描述文本

因为CRDT的特性,那么会造成:

  • 有比较明确的初始化事件(因为需要所有client保证相同的id和tree)
  • 需要比较明确的退出协同编辑事件(再次进入重新初始化)
  • 对每个字符进行标记,空间、性能开销较大(但可以优化,例如分段)

协同编辑这个方向有70多篇论文
https://arxiv.org/ftp/arxiv/p...

https://github.com/yjs/yjs#Yj...


知心哥哥
447 声望16 粉丝

前端工程专家