检测HTML Textfield中更改的内容

时间:2010-04-01 19:02:46

标签: html input textfield

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

现在我的问题如下:

我希望能够检测用户对HTML文本字段执行的更改。他们可以:

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

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

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

我的第一次尝试是在发生变化之前和之后考虑carot的位置,但这种情况很糟糕。

对于我的第二次尝试,我正在考虑对textfields旧值和新值的整个内容进行差异。我错过了这个解决方案的任何明显之处吗是否有更简单的东西?

2 个答案:

答案 0 :(得分:1)

由于几个原因,今天使这项工作变得非常艰苦,但是

一个个人注释:检测单词,字符更改可能完全没有意义且无用,检测段落更改,或者在类似excel的工作表的情况下,单个单元格

我希望这会有所帮助

随时纠正我的英语!

答案 1 :(得分:0)

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

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