1

ブラウザーでローカル ストレージを少し操作しました。しかし、キーと値のペアとして文字列のみを使用しました。文字列のリストを(単一のキーに対して)保存して読み取る方法はありますか??

たとえば、友達をページに表示する必要があるとします。ローカルストレージを利用できれば、フレンドリストを表示するために毎回データベースにクエリを実行する必要はありません (私のアプリケーションでは問題ない矛盾があることはわかっています)。これを達成する方法はありますか????

前もって感謝します :)

4

3 に答える 3

7

はい、できます。localStorage は文字列を格納するだけなので、簡単に解析できる形式で格納する必要があります。

文字列のリストの最も簡単な方法は、文字列化された配列として格納することです。

保管:

localStorage['mylist'] = JSON.stringify(['string1', 'string2']);

読み込み中:

var mylist = JSON.parse(localStorage['mylist']);

さらに追加して保存する:

mylist.push('newstring');
localStorage['mylist'] = JSON.stringify(mylist);
于 2013-08-19T17:31:13.017 に答える
0

XML ドキュメント内に保存することも、JSON を使用して任意のテキスト ファイルに保存することもできます: http://en.wikipedia.org/wiki/JSON

于 2013-08-19T17:29:43.960 に答える
0

配列を JSON に変換できます。それは一つの選択です。変換してから文字列として保存し、それを読み込んで元に変換します。

このために、以下のいくつかの関数を使用します。これらは次のように呼び出されます。

jsonStore.putJson("friendInfo", frientInfo); // friendInfo is an object or array

var readFriendInfo = jsonStore.getJson("friendInfo");

var jsonStore = function () {
    return {
        getJson: function(key) {
            var ret = localStorage[key];
            if (ret) {
                try {
                    ret = JSON.parse(ret); // use JSON3 to handle multiple browsers/versions
                } catch (e) {
                    ret = undefined; // for parse failure
                }
            }
            return ret;
        },
        putJson: function(key, value) {
            localStorage[key] = JSON.stringify(value); // use JSON3 for this too
        }
    };
}();

また

friendInfo各友人に関する文字列が配列要素にあり、各インデックスが異なる友人を示していると仮定すると、次のようなことができます。

for (var i=0; i < friendInfo.length ; ++i) {
    localStorage.setItem("friend" + i, firentInfo[i]);
}

これを行うとき、通常、いくつあるかを示す別のアイテムを保存します。

localStorage.setItem("friend.length", friendInfo.length);
于 2013-08-19T17:30:57.613 に答える