क्या HTML5 लोकलस्टोरेज ऑब्जेक्ट प्रति पेज / डोमेन से अलग है? मैं सोच रहा हूं कि मैं लोकलस्टोरीज की चाबियां कैसे बनाऊंगा। क्या मुझे एक अलग उपसर्ग की आवश्यकता है? या जो मैं चाहता हूं, क्या मैं उनका नाम ले सकता हूं?
क्या HTML5 लोकलस्टोरेज ऑब्जेक्ट प्रति पेज / डोमेन से अलग है? मैं सोच रहा हूं कि मैं लोकलस्टोरीज की चाबियां कैसे बनाऊंगा। क्या मुझे एक अलग उपसर्ग की आवश्यकता है? या जो मैं चाहता हूं, क्या मैं उनका नाम ले सकता हूं?
जवाबों:
यह प्रति डोमेन और पोर्ट ( समान मूल नीति के समान समान नियम ) है, इसे प्रति पृष्ठ बनाने के लिए आपको एक कुंजी location
या किसी अन्य दृष्टिकोण के आधार पर उपयोग करना होगा ।
आप एक उपसर्ग की जरूरत नहीं है , एक का उपयोग करें यदि आप इसे जरूरत है, हालांकि। इसके अलावा, हाँ, आप उन्हें जो चाहें नाम दे सकते हैं।
protocol://host:port
संयोजन अद्वितीय है ।
भंडार प्रति मूल हैं , जहां "मूल" समान उत्पत्ति नीति (स्कीमा [ http
बनाम https
, आदि], बंदरगाह, और मेजबान का एक संयोजन ) के लिए समान है । से कल्पना :
प्रत्येक शीर्ष-स्तरीय ब्राउज़िंग संदर्भ में सत्र संग्रहण क्षेत्रों का एक अनूठा सेट होता है, प्रत्येक मूल के लिए एक।
इस प्रकार, के लिए भंडारण http://a.example.com
और के लिए भंडारण http://b.example.com
अलग हैं (और वे दोनों से अलग हैं http://example.com
) क्योंकि वे सभी अलग-अलग मेजबान हैं। इसी तरह, http://example.com:80
और http://example.com:8080
और https://example.com
सभी अलग-अलग मूल हैं।
वेब संग्रहण में कोई तंत्र नहीं है जो एक मूल को दूसरे के भंडारण तक पहुंचने की अनुमति देता है।
ध्यान दें कि यह मूल है , URL नहीं, http://example.com/page1
और इसलिए http://example.com/page2
दोनों के लिए संग्रहण तक पहुंच है http://example.com
।
हाँ, प्रत्येक डोमेन / उपडोमेन में एक अलग लोकलस्टोरेज होता है और आप जो चाहें (जिसे उपसर्ग आवश्यक नहीं है) कुंजी कह सकते हैं।
कुंजी प्राप्त करने के लिए आप विधि कुंजी (इंडेक्स) का उपयोग कर सकते हैं जैसे
localStorage.key(0);
एक वस्तु थी जिसे ग्लोबलस्टोरेज कहा जाता है, जहां आप कई स्थानीय स्टॉरेज कर सकते हैं, लेकिन इसे ऐनक से हटा दिया गया है
जैसा कि अन्य ने बताया है, लोकलस्टोरेज प्रति प्रोटोकॉल, होस्ट और पोर्ट के लिए अद्वितीय है। यदि आप उपसर्ग कीज़ के साथ अपने स्टोरेज को नियंत्रित करने का आसान तरीका चाहते हैं, तो मैं सुझाव देता हूं कि लोकलडॉटस्टोरेज ।
न केवल यह एक ही डोमेन के भीतर कुंजियों को साझा करने से पहले कुंजी को संकलित करने में मदद करता है, यह पारदर्शी रूप से जावास्क्रिप्ट डेटा प्रकारों (एरे, बूलियन, दिनांक, फ्लोट, इंटेगर, स्ट्रिंग और ऑब्जेक्ट) को संग्रहीत करता है, हल्के से स्थिरीकरण प्रदान करता है, स्वचालित रूप से स्ट्रिंग्स को संपीड़ित करता है, और कुंजी (नाम) के साथ-साथ क्वेरी (कुंजी) मान द्वारा क्वेरी की सुविधा देता है।
[अस्वीकरण] मैं उपयोगिता का लेखक हूं [/ DISCLAIMER]
उदाहरण:
// instantiate our first storage object
// internally, all keys will use the specified prefix, i.e. passphrase.life
var localData = localDataStorage( 'passphrase.life' );
localData.set( 'key1', 'Belgian' )
localData.set( 'key2', 1200.0047 )
localData.set( 'key3', true )
localData.set( 'key4', { 'RSK' : [1,'3',5,'7',9] } )
localData.set( 'key5', null )
localData.get( 'key1' ) --> 'Belgian'
localData.get( 'key2' ) --> 1200.0047
localData.get( 'key3' ) --> true
localData.get( 'key4' ) --> Object {RSK: Array(5)}
localData.get( 'key5' ) --> null
// instantiate our second storage object
// internally, all keys will use the specified prefix, i.e. prismcipher.com
var localData2 = localDataStorage( 'prismcipher.com' );
localData2.set( 'key1', 123456789 ) // integer
localData2.get( 'key1' ) --> 123456789
जैसा कि आप देख सकते हैं, आदिम मूल्यों का सम्मान किया जाता है, और आप अपने भंडारण को नियंत्रित करने के लिए कई उदाहरण बना सकते हैं।