2

HTML5のlocalStorageにオブジェクトデータを保存するための最良の方法は何ですか。KeyValueStorageについてはあまり取り組んでいません。

私の研究では、いくつかの異なるアプローチを見てきました。

データ例:

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);

2番目のアプローチでは、JSON.parse()が必要になります。

長所短所?

4

3 に答える 3

2

レコードについては、アプローチ 2 を使用しました。キーはテーブル名に似ており、値は json 文字列化されたレコードの配列です。テーブルを取得するときは、JSON.parse() を呼び出す必要があります。

于 2010-11-01T21:46:51.840 に答える
0

ローカルストレージのテクノロジーは次のとおりです。http://madhukaudantha.blogspot.com/2011/02/client-side-storages-with-html-5.html .. ..

アプローチ2、OK..もっと方法があります

于 2011-06-24T06:24:36.697 に答える
0

確かに、あなたのアプローチは問題なく機能しますが、選択した規則に少しこだわって前進することはできません。規則が真の規則としてクラスに分離されるように、 localStorage アクセスをクラスにラップすることを検討することをお勧めします。

そうしないと、アプローチ方法を変更することを選択した場合、実装コードがコードベース全体に散らばってしまいます。

于 2011-10-15T15:29:15.140 に答える