【发布时间】:2014-09-15 16:49:25
【问题描述】:
我有一个带有 textarea 的表单,其中可以包含使用多个第三方富文本编辑器之一编辑的大量内容(例如博客文章)。我正在尝试实现类似于自动保存功能的功能,如果内容发生更改,它应该通过 ajax 提交内容。但是,我必须解决这样一个事实,即我作为选项的一些编辑器不支持“isdirty”标志或“onchange”事件,我可以使用它来查看自上次保存后内容是否发生了变化。
因此,作为一种解决方法,我想做的是在上次保存时将内容的副本保留在变量中(我们称之为 lastSaveContent),并在“自动保存”时将其与当前文本进行比较" 函数(在计时器上)触发以查看它是否不同。但是,我担心非常大的文档会占用多少内存。
在 lastSaveContent 变量中存储某种散列而不是整个字符串,然后比较散列值会更有效吗?如果是这样,您能否推荐一个好的 javascript 库/jquery 插件来实现此要求的适当哈希?
【问题讨论】:
-
这可能几乎不会发生在您的用例中,但是对于碰巧在这里搜索 javascript 和散列的临时读者(比如我)来说,比较两个散列值可能值得注意不与比较两个字符串相同,散列可能(并且将会)发生冲突,即 .. 两个不同字符串的相同散列。因此,在许多用例中,如果你得到相同的哈希值,你应该执行一个完整的比较。
-
好点。此外,如果那些读者想知道,Hashtable 对象(例如在许多集合 API 中发现的对象)仍然有效的原因是它们包含在两个键产生相同哈希时处理这些冲突的功能。
标签: javascript string hash