2014-01-09 78 views
0

我试图确保用户不能在不保存使用ace编辑器所做的更改的情况下关闭文件。寻找Ace编辑器中的变化

我看到我可以观看onChange事件,并且有一种可能性是在onChange上设置一个标志,并且如果用户想关闭该文件,请检查该标志未设置,否则将它们放入保存工作流程。

但是,不知道这是做到这一点的最好方法。例如,如果用户进行更改,然后撤消更改,则不需要保存该文件。

我看到Ace编辑器也有一个标记器,所以我在考虑在初始化时标记化编辑器内容,然后检查标记是否已更改。虽然我不确定这是否是令牌生成器的用途(或它的用途)。

我想这样做的方式是创建一个散列(md5,除非别人有其他建议),然后在关闭文件之前检查散列匹配的当前内容的散列。如果散列不匹配,则内容已更改,并且用户进入保存流程,最后更新散列。

对Ace这样做的正确方法有什么想法?

+0

为什么不直接与在执行时编辑的比较来自负载的“文件文本”?这给你一个恢复命令的前半部分... – dandavis

+0

@dandavis我想比较一个哈希将比比较整个文本更快,但是再次,我将不得不在比较之前散列文本。 – pedalpete

+1

哈希是比创建一个指针,甚至重复一小块ram for ascii文本更多的工作,并且你不需要经常运行这个函数,所以谁在乎几个ms ... – dandavis

回答