【发布时间】:2014-01-09 02:16:02
【问题描述】:
我正在尝试确保用户无法在不保存他们使用 ace 编辑器所做的更改的情况下关闭文件。
我看到我可以监视 onChange 事件,一种可能性是在 onChange 上设置一个标志,如果用户想要关闭文件,请检查该标志是否未设置,或者将它们放入保存工作流。
但是,不确定这是不是最好的方法。例如,如果用户进行了更改,然后撤消了更改,则他们不需要保存文件。
我看到 Ace Editor 也有一个标记器,所以我正在考虑在初始化时标记编辑器内容,然后检查标记是否已更改。虽然我不确定这真的是标记器的用途(或它的用途)。
我想这样做的方法是创建一个哈希(md5,除非其他人有其他建议),然后在关闭文件之前检查哈希是否与当前内容的哈希匹配。如果哈希不匹配,则内容已更改,用户进入保存流程,最终更新哈希。
对使用 Ace 的正确方法有什么想法吗?
【问题讨论】:
-
为什么不将加载时的“文件文本”与执行时编辑器的“文件文本”进行比较?这也为您提供了还原命令的前半部分...
-
@dandavis 我认为比较哈希比比较整个文本要快,但话又说回来,我必须在比较之前对文本进行哈希处理。
-
hash 比创建指针甚至为 ascii 文本复制一小块 ram 更工作,而且你不需要经常运行这个函数,所以谁在乎几毫秒.. .
-
@dandavis 如果你把你的回答作为答案,我会给你积分。
标签: javascript hash tokenize ace-editor