सत्र स्टोरेज और लोकल स्टोरेज वेब ब्राउज़र में कुंजी/मूल्य जोड़े को सहेजने की अनुमति देता है। मान एक स्ट्रिंग होना चाहिए, और जेएस ऑब्जेक्ट्स को छोटा नहीं करना चाहिए।सत्र में जावास्क्रिप्ट ऑब्जेक्ट्स सहेजें स्टोरेज
var user = {'name':'John'};
sessionStorage.setItem('user', user);
var obj = sessionStorage.user; // obj='[object Object]' Not an object
आजकल, आप JSON वस्तुओं serializing, और फिर उन्हें deserializing वस्तुओं ठीक करने के लिए द्वारा इस सीमा से बच सकते हैं। लेकिन स्टोरेज एपीआई हमेशा 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
तरीकों की कोशिश की है, क्योंकि मैं सभी गुण परिभाषित करने के लिए है और मेरे लक्ष्य नहीं है भविष्य की संपत्तियों को जानने के लिए।
मैं अपने आप को इस बात का सोचा है। मुझे लगता है कि बहुत से लोगों के पास है। लेकिन मुझे नहीं लगता कि गेटटर और सेटर विधियां बहुत अधिक बोझ हैं। BTW; आप जावास्क्रिप्ट के साथ क्रमबद्ध और विश्लेषण कर सकते हैं और एमएस अंत में सभी मानक वस्तुओं का समर्थन कर रहा है। जेएसओएन और jQuery जैसे पैकेजों की आवश्यकता के दिन तेजी से आ रहे हैं। –
मुझे लगता है कि मुझे सीमा दिखाई नहीं दे रही है। यह JSON.stringify और JSON.parse का उपयोग करने के लिए ओवरकिल जैसा प्रतीत हो सकता है यदि आपके पास केवल छोटी वस्तुएं हैं, लेकिन यदि आपके पास अच्छी आकार की डेटा ऑब्जेक्ट्स हैं तो वे दो विधियां आपके लिए बहुत काम कर रही हैं। – Robusto
"क्या मैं इस सीमा से बच सकता हूं?" एक प्रश्न की तरह लगता है – sonicblis