[英]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.