如何在大文本字段中记录更改?

假设我希望用户在20分钟内写一个故事。 用户完成后我想回放故事编写过程,这样我就可以看到用户如何去做。 我该怎么办? 显然,我不想看它的每一秒,但我想看到每当“大变化”时的快照。 “大变化”应该由我来定义。 它可以是X量的字符添加或减少。

我想到了某种方式试图连续监视文本框的变化,然后每次有“大的变化”时将文本作为字符串存储在数组中。 然后重播这个,我将播放1秒延迟的字符串数组。

有人想过更好的方法来做这件事或知道一个有用的图书馆吗?

谢谢!

让我们理所当然地认为你有能力坚持这种状态,只是看看检测和显示差异的挑战。 你问题最具挑战性的方面是定义并随后检测你所谓的“大变化”。 如果我们暂时搁置一下,我认为有两种方法可以解决这个问题:

1)运营转型 – (http://en.wikipedia.org/wiki/Operational_transformation)

这就是Google Docs(etherpad)用于在多个浏览器之间同步实时协作编辑的function。 使用OT,您几乎可以重新创建对文档所做更改的video。 您可以在thinklinkr.com修订历史中看到这一点(完全披露 – 我是其中一位创始人)。

2)差异匹配路径 – (http://code.google.com/p/google-diff-match-patch/)

这实际上是一组三种算法,可用于有效地创建和解决文本文档之间的差异。 考虑到你对分块差异的要求,我认为这可能是一个更好的匹配。