SessionStorage ve LocalStorage, anahtar / değer çiftlerini bir web tarayıcısına kaydetmenize olanak tanır. Değer bir dize olmalıdır ve js nesnelerini kaydetmek önemsiz değildir.
var user = {'name':'John'};
sessionStorage.setItem('user', user);
var obj = sessionStorage.user; // obj='[object Object]' Not an object
Günümüzde, nesneleri JSON'a serileştirerek ve sonra nesneleri kurtarmak için serisini kaldırarak bu kısıtlamayı önleyebilirsiniz. Ancak Depolama API'sı 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ırlamadan kaçınabilir miyim?
Sadece böyle bir şey yürütmek istiyorum:
sessionStorage.user.name; // 'John'
sessionStorage.user.name = 'Mary';
sessionStorage.user.name // 'Mary'
Tüm özellikleri tanımlamak zorundayım ve hedefim gelecekteki özellikleri bilmek değil, çünkü çağrıları durdurmak için defineGetter
ve defineSetter
yöntemleri denedim ama bu sıkıcı bir iş.