2013-03-18 10 views
9

क्या मुझे का उपयोग localStorage में सबकुछ खत्म करने के लिए करना चाहिए, या क्या मुझे मैन्युअल रूप से removeItem() उस विशेष साइट पर सेट किया गया है (जो ट्रैक रखने के लिए पर्याप्त आसान है)?स्थानीय स्टोरेज - साफ़() या निकालें Item()?

मैं पूछता हूं क्योंकि मैं अन्य मूल्य सेट होने पर उपयोगकर्ताओं के localStorage को मिटा देना नहीं चाहता हूं। मैं स्थानीयहोस्ट में इसका परीक्षण कर रहा हूं और देखा है कि clear() का उपयोग करके, जो कुछ भी मैंने पहले अन्य परियोजनाओं में सेट किया था, उसे मिटा दिया गया था।

संपादित करें: मुझे यह उल्लेख करना चाहिए था कि मुझे पता है कि स्थानीय स्टोरेज डोमेन-लॉक है।

public-html 
(localStorage) 
--project1 
----files 
--project2 
----files 
--project3 
----files 

कहाँ प्रत्येक फ़ाइल यह स्वयं के अलग localStorage चर है का उपयोग करता है: मैं एक साइट है कि इस संरचना इस प्रकार चल रहा हूँ। यदि प्रोजेक्ट 2 के अंदर localstorage.clear() है, तो प्रोजेक्ट 1 और प्रोजेक्ट 3 की सेटिंग्स भी खो जाएंगी।

+1

यह सुनिश्चित नहीं है कि प्रश्न यहां क्या है। आप कह रहे हैं कि आप 'clear' का उपयोग नहीं कर सकते हैं ... – user123444555621

उत्तर

10

स्थानीय स्टोरेज को मूल के लिए उपयोग किया जाना ठीक होगा। इसलिए यदि आपकी सभी परियोजनाएं लोकहोस्ट पर चल रही हैं, तो आप clear() का उपयोग करते समय अपने सभी मूल्यों को मिटा देंगे, और एकमात्र सुरक्षित विधि व्यक्तिगत निष्कासन है।

उत्पादन वातावरण में, प्रत्येक प्रोजेक्ट का अपना डोमेन होना चाहिए और clear सुरक्षित होना चाहिए।

तो यह जानने का सवाल है कि वर्तमान उत्पत्ति पर और क्या है। यदि आप वर्तमान उत्पत्ति पर सबकुछ नियंत्रित करते हैं और इसे सभी को पोंछना नहीं चाहते हैं, तो clear() सबसे अच्छा विकल्प है और उस उद्देश्य के लिए डिज़ाइन किया गया था। यदि स्थानीय स्टोरेज या उसी उत्पत्ति पर होस्ट की गई अन्य परियोजनाओं का उपयोग करके आपके कोड के अन्य भाग हैं तो आप अधिक चुनिंदा और removeItem() का उपयोग करना चाहेंगे।

+0

दुर्भाग्य से मेरे पास मेरी प्रत्येक परियोजना के लिए एकमात्र डोमेन नहीं है - मैं बस इसे बर्दाश्त नहीं कर सका। मैं सबकुछ अपने व्यक्तिगत 'पोर्टफोलियो'-एस्क्यू वेबसाइट के तहत रखना चाहता हूं, जिसमें सब अलग-अलग, अलग-अलग परियोजनाओं वाले सबफ़ोल्डर शामिल हैं। धन्यवाद, ऐसा लगता है कि 'removeItem()' जाने का तरीका है! – Scott

+0

@ जैक्सो यदि आपके पास प्रत्येक प्रोजेक्ट 'स्पष्ट() 'के लिए एक अलग सबडोमेन है तो भी काम करेगा – Markasoftware

5

clear() वर्तमान उत्पत्ति (https://developer.mozilla.org/en-US/docs/JavaScript/Same_origin_policy_for_JavaScript) पर सबकुछ साफ़ करता है। Example.com पर clear() का उपयोग example2.com के लिए स्थानीय स्टोरेज को प्रभावित नहीं करेगा। यह आपके कंप्यूटर पर सभी परियोजनाओं के लिए डेटा साफ़ कर रहा है क्योंकि आपके पास मौजूद सभी परीक्षण फ़ाइलें एक ही उत्पत्ति (http://localhost या file:///C:\) पर हैं। इसलिए, clear()

संबंधित मुद्दे