2010-06-09 56 views
1

我正在使用localstorage在網頁上執行gmail樣式的自動保存。自動保存模式

所以我基本上每30秒鐘保存一次,OK。

問題在於恢復。我無法檢測到用戶是否已崩潰或退出。

讓我們假設用戶崩潰並重新載入窗體,我不能繼續保存並覆蓋以前的自動保存。我需要恢復以前的保存。

但讓我們說用戶沒有崩潰。他正確地做了一切事情,但後來使用了不同的瀏覽器來編輯同一個文件,所以沒有新的數據到以前的瀏覽器的本地存儲。

然後,他在上一個瀏覽器中加載文件。在這種情況下,本地存儲不應該被恢復。

假設沒有辦法比較時間戳,我該如何解決這個問題?

謝謝。

+1

爲什麼你不能使用時間戳? – luke 2010-06-09 23:24:35

回答

1

假設您使用的是像Gmail這樣的AJAX樣式的網頁。

在頁面級別但在localstorage之外和任何特定刷新區域之外保留一個布爾型標誌。只要整個頁面重新加載它是否是由用戶點擊刷新或首次網頁加載

var bIsInited = false; 

的標誌是假的(即瀏覽器被重新啓動之後)。

如果此UI在UI交互時爲false,則從localstorage恢復UI的狀態並將該標誌設置爲true。

繼續持續對localstorage進行新的更改(除非像以前一樣,通過某種方式將標誌設置爲false,在這種情況下,在將UI寫回到localstorage之前將localstorage讀入UI中的信號相同)。

這個流程有很多變化,但這是它的要點。