簡體   English   中英

在本地存儲中存儲字符串列表

[英]Storing a list of strings in local storage

我在瀏覽器中使用了本地存儲。 但是我只使用字符串作為鍵值對。 有什么方法可以存儲字符串列表(單個鍵)並讀取它們?

例如,說我必須在頁面上顯示我的朋友。 如果我可以利用本地存儲,我實際上不需要每次都查詢數據庫來顯示朋友列表(我知道會有一些不穩定性,這對於我的應用程序來說是可以的)。 有什么辦法可以做到這一點????

先感謝您 :)

是的你可以。 localStorage僅存儲字符串,因此您需要以一種易於解析的格式存儲它。

字符串列表的最簡單方法是將其存儲為字符串數組。

儲存:

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

加載:

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

添加更多內容並存儲:

mylist.push('newstring');
localStorage['mylist'] = JSON.stringify(mylist);

您既可以將其存儲在XML文檔中,也可以使用JSON將其存儲在任何文本文件中: http : //en.wikipedia.org/wiki/JSON

您可以將數組轉換為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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM