对于一个主要的学校项目,我正在实施一个实时协作编辑器。对于一个小背景,基本上这意味着两个(或更多)用户可以同时键入到文档中,并且它们的更改会自动传播到另一个(类似于Etherpad)。现在检测HTML文本框中发生了什么变化
我的问题如下:
我希望能够检测到什么样的变化进行到一个HTML文本字段的用户。他们可以:
- 插入字符
- 删除字符
- 粘贴字符的字符串
- 切字符
的字符串,我希望能够以检测这些发生了变化,然后通知其他客户类似于“在位置2插入字符'c'”等。
无论如何,我是一跳以便就如何执行这些更改的检测获得一些建议?
我的第一次尝试是在发生变化之前和之后考虑Carot位置,但是这失败了。
对于我的第二次尝试,我正在考虑对textfields的全部内容进行新旧值的比较。我是否错过了这个解决方案的明显之处?有更简单的东西吗?
这是我原来的做法。它可以检测击键情况,但检测不到其他更改,如剪切和粘贴。 – 2010-04-01 19:13:38
我也在考虑这个解决方案,但是如果两个客户端在服务器确认客户端发生变化之前改变了某些东西,情况会发生竞争吗? 至于剪切和粘贴,http://stackoverflow.com/questions/686995/jquery-catch-paste-input – 2010-04-01 20:09:56