সেশনসটরেজ এবং লোকালস্টোরেশন ওয়েব / ব্রাউজারে কী / মান জোড়া সংরক্ষণ করতে দেয়। মানটি অবশ্যই একটি স্ট্রিং হতে হবে এবং জেএস বস্তুগুলি সংরক্ষণ করা তুচ্ছ নয়।
var user = {'name':'John'};
sessionStorage.setItem('user', user);
var obj = sessionStorage.user; // obj='[object Object]' Not an object
আজকাল, আপনি জেএসএনে অবজেক্টগুলিকে সিরিয়ালাইজ করে এই সীমাবদ্ধতা এড়াতে পারবেন এবং তারপরে অবজেক্টগুলি পুনরুদ্ধার করতে তাদের ডিসরিয়ালাইজ করুন। তবে স্টোরেজ এপিআই সর্বদা পদ্ধতি setItem
এবং getItem
পদ্ধতিগুলির মধ্য দিয়ে যায় ।
sessionStorage.setItem('user', JSON.stringify(user));
var obj = JSON.parse(sessionStorage.getItem('user')); // An object :D
আমি কি এই সীমাবদ্ধতা এড়াতে পারি?
আমি এই জাতীয় কিছু কার্যকর করতে চাই:
sessionStorage.user.name; // 'John'
sessionStorage.user.name = 'Mary';
sessionStorage.user.name // 'Mary'
আমি কলগুলি বন্ধ করার জন্য পদ্ধতিগুলি defineGetter
এবং defineSetter
পদ্ধতিগুলি চেষ্টা করেছি তবে এটি একটি ক্লান্তিকর কাজ, কারণ আমাকে সমস্ত বৈশিষ্ট্য সংজ্ঞায়িত করতে হবে এবং আমার লক্ষ্য ভবিষ্যতের বৈশিষ্ট্যগুলি জানার নয়।