0

对于一个主要的学校项目,我正在实施一个实时协作编辑器。对于一点背景知识,基本上这意味着两个(或多个)用户可以同时输入一个文档,并且他们的更改会自动传播到另一个(类似于 Etherpad)。

现在我的问题如下:

我希望能够检测到用户对 HTML 文本字段进行了哪些更改。他们可以:

  • 插入一个字符
  • 删除一个字符
  • 粘贴一串字符
  • 剪切一串字符

我希望能够检测到发生了哪些更改,然后通知其他客户端类似于“在位置 2 插入字符 'c'”等。

无论如何,我希望就如何实施对这些更改的检测获得一些建议?

我的第一次尝试是考虑更改发生前后的胡萝卜位置,但这失败了。

对于我的第二次尝试,我正在考虑对文本字段旧值和新值的全部内容进行比较。这个解决方案我是否遗漏了任何明显的东西?有没有更简单的?

4

2 回答 2

1

It is a really hard work make this working today, for several reasons, but

one personal note: detecting words, characters changes may be totally non-sense and not useful, detect instead paragraphs changes, or in case of an excel-like worksheet, the single cell

I hope this helps

feel free to correct my English!

于 2012-01-29T04:36:35.413 回答
0

我的伪代码/写出的响应将是(如果我完全理解您的问题)使用 jQuery 来检测 keyup 事件,然后通过 ajax 将输入保存到服务器,然后也获取响应并将其发布回输入。这不是很有效,但基本上这个想法是您不断发布并检查其他已发布的内容。如果您想实时查看其他人在做什么,您可以每隔一秒左右对服务器执行一次 ping 操作,并根据响应进行更新。

当然,所有这些都可以优化,但对于服务器来说仍然是一种负担。您还可以查看是否可以为您的项目实施Google Topeka Wave,或者与Google Topeka 联系以了解他们是如何做到的 :)

于 2010-04-01T19:09:37.810 回答