我正在建立一個聯繫人列表樣式應用程序,該應用程序使用此LocalStorage功能在用戶計算機上保存聯繫人信息。具有兩個以上值的HTML5 LocalStorage
現在,我遇到的問題是,據我所知,每個條目只能存儲兩個值;名稱和價值。
我有點失落,因爲我想不出一個辦法解決這個問題。有什麼建議麼?我希望爲特定條目存儲大約4/5個字段的信息。
問候, 傑克·亨特
我正在建立一個聯繫人列表樣式應用程序,該應用程序使用此LocalStorage功能在用戶計算機上保存聯繫人信息。具有兩個以上值的HTML5 LocalStorage
現在,我遇到的問題是,據我所知,每個條目只能存儲兩個值;名稱和價值。
我有點失落,因爲我想不出一個辦法解決這個問題。有什麼建議麼?我希望爲特定條目存儲大約4/5個字段的信息。
問候, 傑克·亨特
考慮節省了單獨的鍵字段每個數據類型的集合作爲以String格式
// myCollection contains three objects, filled with custom type data, in array
var myCollection = [{},{},{}]
function replacer(key, value) {
if (typeof value === 'number' && !isFinite(value)) {
return String(value);
}
return value;
}
localStorage['first_collection'] = JSON.stringify(myCollection, replacer);
一個JSON如果你想知道,爲什麼是replacer
功能,看看下面的第一個鏈接。
它直接由json.org
http://www.json.org/js.html
JSON to string variable dump
JSON to string in Prototype
https://developer.mozilla.org/en/JSON
http://api.jquery.com/jQuery.parseJSON/
好的,謝謝。我正在閱讀關於JSON的內容。從來沒有使用它,你看到。這段時間還沒有使用JavaScript。謝謝。 –
不客氣@VisionIncision –
可以在localStorage的數據保存爲JSON對象。然後KEY可以是「人」的東西,然後VALUE可以是一組「人」對象。 JavaScript中會出現任何類型的CRUD,並且LocalStorage只會用作持久性介質。
我這樣做過推薦的方式做事,我不知道這是否是一種骯髒的,但它爲我工作。我所做的是重寫存儲原型,以便可以存儲對象。
首先,我 「拯救」 的原始方法:
Storage.prototype._setItem = Storage.prototype.setItem;
Storage.prototype._getItem = Storage.prototype.getItem;
然後我重寫用新的:
Storage.prototype.setItem = function(key, object){
if(typeof object == 'object'){
this._setItem(key, JSON.stringify(object));
}
else{
this._setItem(key, object);
}
}
Storage.prototype.getItem = function(key){
var val = this._getItem(key);
try{
val = JSON.parse(val);
}catch(e){}
return val;
}
到這一點,你可以使用它作爲:
localStorage.setItem('test', {value: 1}); // or localStorage.setItem('test', '{value: 1}')
localStorage.setItem('test2', [3,2,1]); // or localStorage.setItem('test2', '[3,2,1]');
localStorage.setItem('test3', '{no object stuff');
並檢索相同的數據與getItem
localStorage.getItem('test'); // Object: {value: 1}
localStorage.getItem('test2'); // Array: [3,2,1]
localStorage.getItem('test3'); // String: '{no object stuff'
For Example we Have Two Input Element name and email, ok then we have to store key and value pair
變種名稱=的document.getElementById( 'demo1的')值;
var email = document.getElementById('demo2')。value;
localStorage.setItem(「name」,name);
localStorage.setItem(「email」,email);
'JSON' in string? –
@Marek,這似乎很合理 –
@MarekSebera - 你應該張貼作爲答案。這幾乎是每個人都這樣做的。 – Anurag