2012-12-14 29 views
1

這個概念看起來很簡單,但是現在實現邏輯似乎令人望而生畏。javascript localStorage.clear()代碼更新

我在我的應用程序中使用localStorage,並且在更新代碼時我想清除它。

任何想法如何?

+0

將代碼版本存儲在本地存儲中,並比較腳本加載的版本。 –

+0

不過你應該不需要這個。 –

+0

爲什麼我不需要那個? – story

回答

3

你可以存儲在腳本的代碼版本和比較,當你加載腳本:

var version = "1.0.4"; // remember to update this 
if(localStorage.getItem("version") != version){ 
    localStorage.clear(); 
    localStorage.setItem("version", version); 
} 

$(function(){ 
    ... 

如果不想手動跟蹤的版本,可以通過哈希生成的「版本」劇本。一個好的散列是實現的難易程度(這種排除MD5,除非你願意獲取一個庫),散列大小(你不想在localStorage中存儲腳本的一個副本)和它的檢測能力(所以字符串的長度可能不夠)。不用說,使用任何單一更改刪除所有存儲可能過於謹慎,所以我建議使用手動版本跟蹤方法,或者(更好地)重構應用程序,以便它可以使用以前的版本數據。

+0

我接受此答案,儘管我在應用程序中稍微調整了它。我已經在使用一個shell腳本來處理更新和設置,所以我只是添加了一些行來將'git rev-parse HEAD'作爲版本添加到我的main.js的頂部,因爲我絕對需要每次清除localStorage有任何新的代碼。感謝您所有的幫助。 – story