2014-01-09 112 views
0

我試圖確保用戶不能在不保存使用ace編輯器所做的更改的情況下關閉文件。尋找Ace編輯器中的變化

我看到我可以觀看onChange事件,並且有一種可能性是在onChange上設置一個標誌,並且如果用戶想關閉該文件,請檢查該標誌未設置,否則將它們放入保存工作流程。

但是,不知道這是做到這一點的最好方法。例如,如果用戶進行更改,然後撤消更改,則不需要保存該文件。

我看到Ace編輯器也有一個標記器,所以我在考慮在初始化時標記化編輯器內容,然後檢查標記是否已更改。雖然我不確定這是否是令牌生成器的用途(或它的用途)。

我想這樣做的方式是創建一個散列(md5,除非別人有其他建議),然後在關閉文件之前檢查散列匹配的當前內容的散列。如果散列不匹配,則內容已更改,並且用戶進入保存流程,最後更新散列。

對Ace這樣做的正確方法有什麼想法?

+0

爲什麼不直接與在執行時編輯的比較來自負載的「文件文本」?這給你一個恢復命令的前半部分... – dandavis

+0

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

+1

哈希是比創建一個指針,甚至重複一小塊ram for ascii文本更多的工作,並且你不需要經常運行這個函數,所以誰在乎幾個ms ... – dandavis

回答