对于一个主要的学校项目,我正在实施一个实时协作编辑器。对于一点背景知识,基本上这意味着两个(或多个)用户可以同时输入一个文档,并且他们的更改会自动传播到另一个(类似于 Etherpad)。
现在我的问题如下:
我希望能够检测到用户对 HTML 文本字段进行了哪些更改。他们可以:
- 插入一个字符
- 删除一个字符
- 粘贴一串字符
- 剪切一串字符
我希望能够检测到发生了哪些更改,然后通知其他客户端类似于“在位置 2 插入字符 'c'”等。
无论如何,我希望就如何实施对这些更改的检测获得一些建议?
我的第一次尝试是考虑更改发生前后的胡萝卜位置,但这失败了。
对于我的第二次尝试,我正在考虑对文本字段旧值和新值的全部内容进行比较。这个解决方案我是否遗漏了任何明显的东西?有没有更简单的?