जावास्क्रिप्ट में स्थानीयकरण समाशोधन?


746

क्या जावास्क्रिप्ट में ब्राउज़र के लोकलस्टोरेज को रीसेट / क्लियर करने का कोई तरीका है?

जवाबों:


1371

स्थानीयस्टोर को साफ़ करने के लिए इसका उपयोग करें:

localStorage.clear();

6
@ बेक्डफॉल बिल्कुल नहीं। शायद आपका ऐप इसे फिर से सेट कर दे?
Destan

5
जब मेरा ऐप शुरू होता है, तो मैं लोकलस्टोरेज (क्लियर) कॉल करता हूं, लेकिन अगर मैं ब्राउजर, क्लियर कैश आदि को बंद कर दूं, तो भी डेटा मौजूद है। मुझे यह पता है क्योंकि मैंने अपने मॉडल पर एक "इंस्टेंस" प्रॉपर्टी को इनिशिएटिव नंबर पर रैंडम नंबर पर सेट किया है, और, दिए गए आईडी के लिए, इंस्टेंस प्रॉपर्टी हमेशा समान होती है।
सायडनीस

11
@ डिजिटल-प्लेन क्या यह विशिष्ट डोमेन या सभी स्टोरेज से स्थानीय भंडारण को साफ करेगा?
कुरकुरा

18
clear()आप जिस विशिष्ट डोमेन पर हैं, उससे सभी लोकलस्टोरेज कीज़ और वैल्यूज़ निकाल देंगे। जावास्क्रिप्ट कॉर्स के कारण किसी भी अन्य डोमेन से स्थानीयस्टोरेज मान प्राप्त करने में असमर्थ है।
फिज़िक्स

1
@ बेक्डफॉल सही है, यह तब तक रहता है जब तक आप पेज को हार्ड रिफ्रेश नहीं करते। जब आप अपना लोकलस्टोरेज साफ़ करते हैं और उसके ठीक बाद उसे भरते हैं, तो यह पिछली सामग्री को पुनर्स्थापित करता है और आपको इसमें नया आइटम जोड़ता है। जब आप अपना लोकलस्टोरेज क्लियर करते हैं और हार्डफ्रेश करते हैं, तो यह खाली होता है और आप इसे फिर से भरना शुरू कर सकते हैं।
साइबर

198

यदि आप उपयोगकर्ता के स्थानीय संग्रहण से कोई विशिष्ट आइटम या चर निकालना चाहते हैं, तो आप उपयोग कर सकते हैं

localStorage.removeItem("name of localStorage variable you want to remove");

1
नमस्ते, @ एजीत अगर मैं किसी विशेष वस्तु को नहीं निकालना चाहता तो क्या ऐसा करने का कोई तरीका है? उदाहरण के लिए 'removeItemNotIn (कुंजी)', 'एक परिभाषित कुंजी को छोड़कर सभी को हटा दें'? अग्रिम में धन्यवाद।
Me_developer

नमस्ते, @ शादो अगर मैं किसी विशेष वस्तु को नहीं निकालना चाहता तो क्या ऐसा करने का कोई तरीका है? उदाहरण के लिए 'removeItemNotIn (कुंजी)', 'एक परिभाषित कुंजी को छोड़कर सभी को हटा दें'? अग्रिम में धन्यवाद।
Me_developer

मैंने अपनी समस्या का हल खोजा: - if (localStorage.getItem (specialKey) == null) {localStorage.clear (); } लेकिन अगर आपके पास एक बेहतर उपाय है तो मुझे बताएं। धन्यवाद।
Me_developer

1
@ Learner तो आप एक विशेष कुंजी को छोड़कर सभी चाबियाँ निकालना चाहते हैं , है ना? उसके लिए आप कुछ इस तरह कर सकते हैं var key; for (var i = 0; i < localStorage.length; i++) { key = localStorage.key(i); if(key != particularKey){ localStorage.removeItem(key); } }
अजीत लखानी

1
यह भी संभव है: मूल्य प्राप्त करना, समाशोधन करना और फिर से मूल्य निर्धारित करना, अधिक बहुमुखी। let tmp = localStorage.getItem('<your-name>'); localStorage.clear(); localStorage.setItem('<your-name>')
माइकल बी।


11

यहां एक फ़ंक्शन है जो आपको अपवादों के साथ सभी स्थानीयस्टोर आइटम को निकालने की अनुमति देगा। इस फ़ंक्शन के लिए आपको jQuery की आवश्यकता होगी । आप जिस्ट डाउनलोड कर सकते हैं ।

आप इसे इस तरह कह सकते हैं

let clearStorageExcept = function(exceptions) {
  let keys = [];
  exceptions = [].concat(exceptions); // prevent undefined

  // get storage keys
  $.each(localStorage, (key) => {
    keys.push(key);
  });

  // loop through keys
  for (let i = 0; i < keys.length; i++) {
    let key = keys[i];
    let deleteItem = true;

    // check if key excluded
    for (let j = 0; j < exceptions.length; j++) {
      let exception = exceptions[j];
      if (key == exception) {
        deleteItem = false;
      }
    }

    // delete key
    if (deleteItem) {
      localStorage.removeItem(key);
    }
  }
};

1
अजीब बात यह है कि इसके undefinedलिए एक वैध कुंजी है setItemऔरgetItem
ebob

@ हाँ, यह अजीब लग सकता है, लेकिन नहीं, वास्तव में यह नहीं है। लोकलस्टोरीज एक समान शैली में वस्तुओं के लिए कार्य करता है जिसमें कुंजियों को स्ट्रिंग में परिवर्तित किया जाता है। उदाहरण के लिए, इस तरह से एक कुंजी के रूप में अपरिभाषित का उपयोग करना: localStorage.setItem(undefined, 'example Txt!')यह एक्टुअल को उस कुंजी के नीचे संग्रहीत करेगा जिसे 'undefined'आप निम्न कोड चलाते समय देख सकते हैं। console.log(localStorage.getItem('undefined')) उत्पादन होगा example Txt!
जैक गिफिन

8

लोकलस्टोरेज ग्लोबल से जुड़ा हुआ है window। जब हम क्रोम डेस्टुल्ल्स में लोकलस्टोरेज को लॉग इन करते हैं तो हम देखते हैं कि इसमें निम्नलिखित एपीआई हैं:

यहां छवि विवरण दर्ज करें

हम निम्नलिखित एपीआई का उपयोग वस्तुओं को हटाने के लिए कर सकते हैं:

  1. localStorage.clear(): पूरे स्थानीय इलाके को साफ करता है
  2. localStorage.removeItem('myItem'): व्यक्तिगत वस्तुओं को हटाने के लिए

4

पहली चीजें पहले, आपको यह सुनिश्चित करने के लिए जांचने की आवश्यकता है कि लोकलस्टोरेज सक्षम है। मैं इसे इस तरह से करने की सलाह दूंगा:

var localStorageEnabled = false;
try { localStorageEnabled = !!localStorage; } catch(e) {};

हां, आप कर सकते हैं (कुछ मामलों में) यह देखने के लिए कि क्या स्थानीयस्टोर विंडो ऑब्जेक्ट का सदस्य है। हालाँकि, iframe सैंडबॉक्सिंग विकल्प (अन्य बातों के अलावा) हैं जो एक अपवाद को फेंक देंगे यदि आप इंडेक्स 'localStorage' तक पहुँचने का प्रयास करते हैं। इस प्रकार, सर्वोत्तम-प्रथाओं के कारणों के लिए, यह देखने का सबसे अच्छा तरीका है कि स्थानीयस्टोरेज सक्षम है या नहीं। उसके बाद, आप ऐसा कर सकते हैं।

if (localStorageEnabled) localStorage.clear();

उदाहरण के लिए, आप इस तरह से वेबकिट ब्राउज़र में एक त्रुटि होने के बाद लोकलस्टोरेज को साफ कर सकते हैं।

// clears the local storage upon error
if (localStorageEnabled)
  window.onerror = localStorage.clear.bind(localStorage);

उपरोक्त उदाहरण में, आपको इसकी आवश्यकता है .bind(window)क्योंकि इसके बिना, localStorage.clearफ़ंक्शन windowऑब्जेक्ट के संदर्भ में चलेगा , ऑब्जेक्ट के बजाय localStorageयह चुपचाप विफल हो जाएगा। इसे प्रदर्शित करने के लिए, नीचे दिए गए उदाहरण को देखें:

window.onerror = localStorage.clear;

के समान है:

window.onerror = function(){
    localStorage.clear.call(window);
}

3

यदि आप स्थानीय में संग्रहीत सभी आइटम को साफ़ करना चाहते हैं तो

localStorage.clear();

स्पष्ट सभी संग्रहीत कुंजी के लिए इसका उपयोग करें।

यदि आप केवल विशिष्ट कुंजी / मान को हटाना / निकालना चाहते हैं तो आप removeItem (कुंजी) का उपयोग कर सकते हैं ।

localStorage.removeItem('yourKey');

2
localStorage.clear();

या

window.localStorage.clear();

विशेष आइटम साफ़ करने के लिए

window.localStorage.removeItem("item_name");

आईडी द्वारा विशेष मूल्य निकालने के लिए:

var item_detail = JSON.parse(localStorage.getItem("key_name")) || [];           
            $.each(item_detail, function(index, obj){
                if (key_id == data('key')) {
                    item_detail.splice(index,1);
                    localStorage["key_name"] = JSON.stringify(item_detail);
                    return false;
                }
            });


0

यहां एक सरल कोड है जो जावास्क्रिप्ट का उपयोग करके आपके ब्राउज़र में संग्रहीत स्थानीय स्टोरेज को साफ करेगा

    <script type="text/javascript">

if(localStorage) { // Check if the localStorage object exists

    localStorage.clear()  //clears the localstorage

} else {

    alert("Sorry, no local storage."); //an alert if localstorage is non-existing
}

</script>

पुष्टि करने के लिए कि क्या स्थानीयस्टोर इस कोड का उपयोग करता है:

<script type="text/javascript">

// Check if the localStorage object exists
if(localStorage) {

    alert("Am still here, " + localStorage.getItem("your object name")); //put the object name
} else {
    alert("Sorry, i've been deleted ."); //an alert
}

</script>

यदि यह अशक्त हो जाता है तो आपका स्थानीय भंडार साफ़ हो जाता है।


0

यह कोड यहां आपको उन चाबियों के तारों की सूची देता है जिन्हें आप हटाना नहीं चाहते हैं, फिर यह स्थानीय भंडारण की सभी कुंजियों को फ़िल्टर करता है और फिर अन्य को हटा देता है।

const allKeys = Object.keys(localStorage);

const toBeDeleted = allKeys.filter(value => {
  return !this.doNotDeleteList.includes(value);
});

toBeDeleted.forEach(value => {
  localStorage.removeItem(value);
});
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.