HTML5 Nesneleri depolamak localStorage
*3 HTML5* JavaScript bir nesne saklamak için istiyorum ama benim nesne anlaşılan bir dizeye dönüştürülür ediliyor.
Ve ilkel JavaScript türleri localStorage
ama nesneleri çalışmıyor kullanarak depolamak ve almak istiyorum. Onlar gerekir?
İşte benim kod:
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
console.log('typeof testObject: ' typeof testObject);
console.log('testObject properties:');
for (var prop in testObject) {
console.log(' ' prop ': ' testObject[prop]);
}
// Put the object into storage
localStorage.setItem('testObject', testObject);
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
console.log('typeof retrievedObject: ' typeof retrievedObject);
console.log('Value of retrievedObject: ' retrievedObject);
Konsol çıkış yapıyor
typeof testObject: object
testObject properties:
one: 1
two: 2
three: 3
typeof retrievedObject: string
Value of retrievedObject: [object Object]
setItem
yöntem depolamadan önce bir dizeye giriş dönüştürüyor gibi görünüyor.
HTML5 Web Storage spec, tarayıcı özgü bir hata değil, yanlış anlama veya benim sınırlaması var herhalde Safari, Chrome ve Firefox bu davranışı görüyorum.
Bu anlam vermeye çalıştımklon yapılandırılmışalgoritma http://www.w3.org/TR/html5/infrastructure.html nitelendirdi. Tam olarak ne dediğini anlamadım, ama belki de sorun benim nesne özellikleri ile bir ilgisi yoktur sayısız varlık değil (???)
Kolay bir çözüm var mı?
CEVAP
*,* *11 12* Microsoft belgelerine baktığımızda, sınırlı bir şekilde sadece dize anahtar/değer çiftleri ele gibi görünüyor.
Geçici bir çözüm bunu aldığınızda 14 ** saklamadan önce, nesne, ve daha sonra bunu ayrıştırmak için olabilir:
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
// Put the object into storage
localStorage.setItem('testObject', JSON.stringify(testObject));
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
console.log('retrievedObject: ', JSON.parse(retrievedObject));
HTML5 localStorage: eğer öğe ayarlanıp...
HTML5 localStorage için alt limit...
HTML5 localStorage almak anahtarları...
HTML5, localStorage sayfa/etki alanı b...
Safari ile html5 localStorage hata: &q...