2010-09-30 35 views
2

在HTML5的localStorage中存儲對象數據的最佳方式是什麼?我沒有太多的關鍵價值存儲。HTML5 localStorage設計問題

在我的研究中,我看到了幾種不同的方法。

示例數據:

var commands = [ 
    {invokes: 'Window', type: 'file', data: '/data/1'}, 
    {invokes: 'Action', type: 'icon', data: '/data/2'}, 
    {invokes: 'Window', type: 'file', data: '/data/3'} 
]; 

方法1:存儲密鑰表示每個數據項

// for(...) { 
localStorage["command[" + i + "].invokes"] = command[i].invokes 
localStorage["command[" + i + "].type"] = command[i].type 
localStorage["command[" + i + "].data"] = command[i].data 
//} 

方法2:鍵是實體名稱,商店JSON

localStorage["commands"] = JSON.stringify(commands); 

第二種方法將需要一個JSON.parse()。

優點/缺點?

回答

2

爲了記錄我去了方法2.我的鍵是類似於表名,該值是一個JSON字符串數組的記錄。當檢索表格時,你必須調用JSON.parse()。

0

當然你的方法工作得很好,但它確實讓你有點堅持公約你選擇了前進。我建議你考慮把你的localStorage訪問包裝在一個類中,這樣你的約定就像一個真正的約定被隔離到一個類中。

否則,如果你選擇改變你接近它的方式,你將會在你的代碼庫中分散實現代碼。