स्‍थानीय व्‍यवस्‍था कितनी निरंतर है?


102

मैं एक प्लगइन के लिए स्थानीयस्टोरेज पर बहुत अधिक निर्भर हूं जो मैं लिख रहा हूं। सभी उपयोगकर्ता सेटिंग्स इसमें संग्रहीत हैं। कुछ सेटिंग्स में उपयोगकर्ता को regex'es लिखने की आवश्यकता होती है और यदि उनके regex नियम किसी बिंदु पर चले जाते हैं तो वे दुखी होंगे। इसलिए अब मैं सोच रहा हूं कि लोकलस्टोरीज कितनी सधी हुई है।

से चश्मा :

उपयोगकर्ता एजेंटों को केवल सुरक्षा कारणों से या उपयोगकर्ता द्वारा ऐसा करने का अनुरोध करने पर स्थानीय भंडारण क्षेत्रों से डेटा समाप्त करना चाहिए।

ऊपर की तरह दिखता है कि यह क्लाइंटसाइड पर कुकीज़ की तरह काम करता है। Ie जब उपयोगकर्ता सभी ब्राउज़र डेटा (इतिहास, कुकीज़, कैश आदि) को साफ करता है, तो लोकलस्टोरेज भी छोटा हो जाएगा। क्या यह धारणा सही है?


1
यह देखते हुए कि ब्राउज़रों को यह तय करना है कि एक आदर्श दुनिया में "सुरक्षा कारण" क्या होता है, आप यह नहीं मानेंगे कि यह बहुत लंबे समय तक चलेगा। हालांकि, यह संभवतः यह मान लेना सुरक्षित है कि यह तब तक बना रहता है जब तक कि उपयोगकर्ता स्पष्ट रूप से इसे फ्लश नहीं करता है।
Corbin

1
लोकलस्टोरेज का उपयोग करते समय सिर्फ एक चेतावनी: यह फ़ायरफ़ॉक्स 39, 38 और 37 में मज़बूती से काम नहीं करता है (हमने बड़ी उम्र की जांच नहीं की है)। हमारे उपयोगकर्ता की लगभग 1% मशीनों पर, हमारी साइट ब्राउज़ करने के बीच में लोकलस्टोरेज कभी-कभी खो जाता है, जबकि सत्र-कुकी संरक्षित है। मेरे लिए एक बग की तरह लगता है।
एंड्रियास

1
@PeeHaa, यह केवल कुकीज़ की तरह काम नहीं करता है , लेकिन कानूनी तौर पर "कुकीज़" के रूप में भी परिभाषित किया गया है। वास्तव में, भंडारण की जानकारी को अन्य कुकीज़ के साथ url में सही दिखाया गया हैchrome:settings/cookies
Pacerier

जवाबों:


69

मोज़िला इसे कुकीज़ की तरह लागू करता है:

डोम स्टोरेज को "टूल्स -> क्लियर हाल हिस्ट्री -> कुकीज" के माध्यम से क्लियर किया जा सकता है जब टाइम रेंज "एवरीथिंग" (nsICookieManager :: removeAll के माध्यम से)

https://developer.mozilla.org/en/DOM/Storage

DOM स्टोरेज में आपके किसी भी डेटा के लिए समाप्ति की अवधि निर्दिष्ट करना संभव नहीं है। सभी समाप्ति नियम उपयोगकर्ता पर छोड़ दिए जाते हैं। मोज़िला के मामले में, उन नियमों में से अधिकांश कुकी-संबंधित समाप्ति नियमों से विरासत में मिले हैं। इस वजह से आप अपने अधिकांश DOM स्टोरेज डेटा की उम्मीद कम से कम समय के लिए कर सकते हैं।

http://ejohn.org/blog/dom-storage/

क्रोम इसे कैश की तरह लागू करता है:

लोकलस्टोरेज सिक्योर स्टोरेज नहीं है

HTML5 स्थानीय संग्रहण नियमित ब्राउज़र कैश में स्ट्रिंग रूप में अनएन्क्रिप्टेड डेटा बचाता है

हठ

उपयोगकर्ता द्वारा हटाए जाने (कैश हटाएं) या ऐप द्वारा डिस्क पर

https://developers.google.com/web-toolkit/doc/latest/DevGuideHtml5Storage


"कुकी के प्रतिस्थापन" के लिए, पूरी तरह से नहीं

कुकीज़ और स्थानीय भंडारण वास्तव में अंतर उद्देश्यों की पूर्ति करते हैं। कुकीज़ मुख्य रूप से सर्वर-साइड पढ़ने के लिए हैं, लोकलस्टोरेज को केवल क्लाइंट-साइड पढ़ा जा सकता है। तो सवाल है, आपके ऐप में, इस डेटा की ज़रूरत किसे है - क्लाइंट या सर्वर?


1
मुझे लगता है कि इस एमडीएन लिंक ने अधिक स्पष्ट समझाया।
बो लू

17

मूल रूप से, आपको स्थानीय संग्रहण पर बहुत अधिक निर्भर नहीं होना चाहिए ।

सेशन स्टोरेज के साथ-साथ लोकल स्टोरेज का उद्देश्य कुकीज़ को बदलना, अधिक सुसंगत एपीआई को परिभाषित करना है। कुकीज़ से कुछ अंतर हैं:

  • जबकि कुकीज क्लाइंट और सर्वर साइड दोनों से, वेब स्टोरेज, सामान्य रूप से, और लोकल स्टोरेज, विशेष रूप से, क्लाइंट साइड से ही एक्सेस की जा सकती हैं।
  • बढ़ी हुई क्षमता (कुकीज़ के लिए आधिकारिक 4 केबी) प्रति डोमेन (फ़ायरफ़ॉक्स, Google क्रोम, और ओपेरा और आईई में 10 एमबी) से अधिक है।

तो हाँ , आपकी धारणा सही है।


1
+1 - यही कारण है कि मैं सर्वर पर कैश और बैकअप उपयोगकर्ता डेटा के रूप में स्थानीय भंडारण का उपयोग करूंगा। (बेशक, यह
माना जाता है

2
Basically, you should not heavily depend on Local Storage.... पूर्ण रूप से !!
तेनाली रमन

7

स्थानीय भंडारण का उपयोग करने के बारे में एक बात ध्यान दें। यह बहुत ब्राउज़र विशिष्ट है। यदि आप फ़ायरफ़ॉक्स के साथ डेटा संग्रहीत करते हैं तो यह क्रोम या अर्थात आदि में उपलब्ध नहीं होगा। जहाँ तक कुकीज़ और सत्रों को साफ़ करने के बाद, मैंने देखा है कि यह ब्राउज़र के लिए भी विशिष्ट है कि क्या स्थानीय भंडारण साफ़ है या नहीं। यदि आप वास्तव में किसी ऐप के लिए स्थानीय संग्रहण पर निर्भर होने की योजना बना रहे हैं, तो मैं विवरणों पर ध्यान दूंगा।


14
क्या यह कुकीज़ के साथ भी सच नहीं है?
जेफरी स्वीनी

3
यह कुकीज़ के लिए भी सही है।
मोशे एल

नहीं, यह कुकीज़ के लिए आवश्यक नहीं है: OSX पर, वेबकिट का उपयोग करने वाले ऐप्स मेरे अनुभव में कुकीज़ साझा करते हुए दिखाई देते हैं। हालांकि मैं गलत प्रभाव डाल सकता हूं।
थॉमस टेम्पेलमैन

दूसरी ओर, वह एक प्लगइन लिख रहा है, जो मुझे लगता है, ब्राउज़र विशिष्ट है।
गाईट

5

स्थानीय संग्रहण को एक ग्राहक पर डेटा के भरोसेमंद, लगातार स्टोर करने के लिए डिज़ाइन किया गया है। इसे "बेहतर कुकी" के रूप में डिज़ाइन नहीं किया गया है: यह फ़ंक्शन सेशन स्टोरेज से पूरा करने के लिए डिज़ाइन किया गया है।

से दिसंबर 2011 वेब संग्रहण युक्ति उम्मीदवार सिफारिश ,

(स्थानीय भंडारण) को स्टोरेज के लिए डिज़ाइन किया गया है जो कई विंडो फैलाता है, और वर्तमान सत्र से परे रहता है। विशेष रूप से, वेब एप्लिकेशन उपयोगकर्ता डेटा के मेगाबाइट्स, जैसे संपूर्ण उपयोगकर्ता-लेखक दस्तावेज़ या उपयोगकर्ता के मेलबॉक्स को प्रदर्शन कारणों से क्लाइंट साइड पर संग्रहीत करना चाह सकते हैं।

क्लाइंट-साइड डेटा के रूप में - यह किसी भी क्लाइंट साइड डेटा के रूप में लगातार है , आकार के भीतर जो ब्राउज़र को लागू करता है। उपयोगकर्ता इसे किसी भी समय हटा सकते हैं, इसे एक टेक्स्ट एडिटर में खोल सकते हैं और आदि को संपादित कर सकते हैं - किसी भी क्लाइंट साइड डेटा की तरह।


1
शायद यह आपके मूल पद से 8 साल पहले बदल गया है, लेकिन कुकीज़ के प्रतिस्थापन के रूप में स्थानीय भंडारण का बहुत उपयोग किया जा सकता है (जहां क्लाइंट-साइड केवल एक्सेस की आवश्यकता है)। सत्र संग्रहण नहीं हो सकता। ब्राउजर बंद होते ही सेशन स्टोरेज डिलीट हो जाता है।
ब्रैड

3

यदि आप iOS ऐप के लिए लोकलस्टोरेज का उपयोग कर रहे हैं, तो बहुत सावधान रहें। आईओएस के नवीनतम संस्करण (मेरे सिर के ऊपर से 5.1) ने स्थानीयकृत और स्थानीय डेटा को कैश के एक हिस्से में स्थानांतरित कर दिया है जो नियमित रूप से साफ किया जाता है, अर्थात बिल्कुल भी नहीं। मैं अभी तक नहीं बता सकता कि क्या यह बग या नीति में बदलाव है।


2
मेरा मानना ​​है कि यह WebViews के लिए सही है, लेकिन सफारी के लिए नहीं।
ट्रोट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.