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




local-storage (8)

अगर उपरोक्त सभी काम नहीं कर रहे हैं? तो यह जवाब एक आकर्षण की तरह काम करेगा
https://stackoverflow.com/a/45057698/5902146

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


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

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

import 'store' from 'store';

// फिर अपने कोड में यह लाइन जोड़ें:

store.clearAll();

स्थानीय स्टोरेज को साफ़ करने के लिए इसका इस्तेमाल करें:

localStorage.clear();

window.localStorage.clear(); //try this to clear all local storage

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

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

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

if (localStorageEnabled) localStorage.clear();

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

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

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

window.onerror = localStorage.clear;

के समान है:

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

यहां एक ऐसा फ़ंक्शन है जो आपको अपवादों के साथ सभी स्थानीय स्टोरेज आइटमों को हटाने की अनुमति देगा। आपको इस फ़ंक्शन के लिए 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);
    }
  }
};

नोट: यह किसी अन्य उत्तर का उत्तर है, इस प्रश्न का उचित जवाब नहीं। यदि आप तेजी से ऑब्जेक्ट क्लोनिंग करना चाहते हैं तो कृपया इस प्रश्न के उत्तर में कॉर्बान की सलाह का पालन ​​करें।

मैं ध्यान रखना चाहता हूं कि jQuery में .clone() विधि केवल क्लोन डीओएम तत्वों को क्लोन करता है। जावास्क्रिप्ट ऑब्जेक्ट्स क्लोन करने के लिए, आप करेंगे:

// Shallow copy
var newObject = jQuery.extend({}, oldObject);

// Deep copy
var newObject = jQuery.extend(true, {}, oldObject);

अधिक जानकारी jQuery दस्तावेज़ में पाया जा सकता है।

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







javascript local-storage