SessionStorage ve LocalStorage, web tarayıcısında anahtar/değer çiftlerini kaydetmeyi sağlar. Değer bir dize olmalı ve js nesnelerini kaydetmek önemsiz değildir.Oturumdaki JavaScript nesnelerini kaydetmeStorage
var user = {'name':'John'};
sessionStorage.setItem('user', user);
var obj = sessionStorage.user; // obj='[object Object]' Not an object
Günümüzde nesneleri kurtarmak için onları deserializing sonra JSON nesneleri seri ve bu sınırlama önleyebilirsiniz. Ancak Depolama API'si her zaman setItem
ve getItem
yöntemlerinden geçer.
sessionStorage.setItem('user', JSON.stringify(user));
var obj = JSON.parse(sessionStorage.getItem('user')); // An object :D
Bu sınırlamayı engelleyebilir miyim?
Sadece böyle bir şey yürütmek istiyorum: Ben tüm özellikleri tanımlamak zorunda çünkü Aramaları ama onun sıkıcı bir iş önünü defineGetter
ve defineSetter
yöntemlerini denemiş
sessionStorage.user.name; // 'John'
sessionStorage.user.name = 'Mary';
sessionStorage.user.name // 'Mary'
ve benim hedef değildir gelecekteki özelliklerini bilmek.
Kendimi o düşündüm. Sanırım bir sürü insan var. Ama getter ve setter metotlarının fazla yük olduğunu düşünmüyorum. BTW; JavaScript ile serileştirebilir ve ayrıştırabilirsiniz ve MS nihayet herkesle aynı standart nesneleri desteklemektedir. JSON ve jQuery gibi paketlere ihtiyaç duyulan günler hızla bitiyor. –
Sanırım sınırlamayı görmüyorum. Sadece önemsiz nesneleriniz varsa JSON.stringify ve JSON.parse'i kullanmanız aşırı bir hız gibi görünebilir, ancak iyi boyutlu veri nesnelerine sahipseniz, bu iki yöntem sizin için çok fazla iş çıkarmaktadır. – Robusto
"Bu sınırlamayı engelleyebilir miyim?" bir soru gibi görünüyor – sonicblis