Javascript'te localStorage temizlensin mi?


Yanıtlar:


1371

LocalStorage'ı temizlemek için bunu kullanın:

localStorage.clear();

6
@BakedInhalf hiç de değil. Belki uygulamanız yeniden ayarlandı?
destan

5
Uygulamam başladığında localStorage.clear () öğesini çağırıyorum, ancak tarayıcıyı kapatsam, önbelleği temizlesem bile, veriler hala orada. Bunu başlangıçta rasgele bir sayı için benim model üzerinde bir "örnek" özelliği ayarladım ve belirli bir id için örnek özelliği her zaman aynı olduğunu biliyorum.
sydneyos

11
@ digital-plane Bu, yerel depolama alanını belirli bir etki alanından mı yoksa tüm depolama alanından temizler mi?
crisron

18
clear()bulunduğunuz alandan tüm localStorage anahtarlarını ve değerlerini kaldıracaktır. Javascript, CORS nedeniyle diğer alanlardan localStorage değerleri alamıyor.
Fizzix

1
@ KabedInhalf haklı, sayfayı yenileyene kadar aynı kalır. LocalStorage'ınızı temizleyip hemen doldurduğunuzda, önceki içeriği geri yükler ve size yeni bir öğe ekler. LocalStorage'ınızı temizlediğinizde ve sert bir yenileme yaptığınızda, boştur ve tekrar doldurmaya başlayabilirsiniz.
Siber

198

Kullanıcının yerel deposundan belirli bir Öğeyi veya değişkeni kaldırmak istiyorsanız,

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

1
Merhaba, @Ajeet Belirli bir öğeyi kaldırmak istemiyorsam, o zaman da bunu yapmanın bir yolu var mı? Örneğin 'removeItemNotIn (anahtar)', 'tanımlı anahtar hariç tümünü kaldır'? Şimdiden teşekkürler.
Me_developer

Merhaba, @Shadow Belirli bir öğeyi kaldırmak istemiyorsam, o zaman da bunu yapmanın bir yolu var mı? Örneğin 'removeItemNotIn (anahtar)', 'tanımlı anahtar hariç tümünü kaldır'? Şimdiden teşekkürler.
Me_developer

Sorunum için bir çözüm buldum: - if (localStorage.getItem (particularlyKey) == null) {localStorage.clear (); } Ama daha iyi bir çözümünüz varsa bana bildirin. Teşekkürler.
Me_developer

1
@learner Belirli bir anahtar dışındaki tüm anahtarları kaldırmak istiyorsunuz , değil mi? Bunun için böyle bir şey yapabilirsiniz var key; for (var i = 0; i < localStorage.length; i++) { key = localStorage.key(i); if(key != particularKey){ localStorage.removeItem(key); } }
Ajeet Lakhani

1
Ayrıca mümkün: değeri almak, değeri temizlemek ve tekrar ayarlamak, çok yönlü. let tmp = localStorage.getItem('<your-name>'); localStorage.clear(); localStorage.setItem('<your-name>')
Michael B.


11

İstisnasız tüm localStorage öğelerini kaldırmanıza izin veren bir işlev. Bu işlev için jQuery gerekir . Bu özeti indirebilirsiniz .

Buna şöyle diyebilirsiniz

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
Garip bir şey, bu undefinedgeçerli bir anahtar setItemvegetItem
ebob

@ebob Evet, garip gelebilir, ama hayır, gerçekten değil. localStorage, anahtarların dizelere dönüştürülmesindeki nesnelere benzer şekilde çalışır. Örneğin, undefined komutunu aşağıdaki gibi bir anahtar olarak kullandığınızda , aşağıdaki kodu çalıştırdığınızda görebileceğiniz şekilde, localStorage.setItem(undefined, 'example Txt!')bu tuş adı verilen anahtarın altında saklanır 'undefined'. console.log(localStorage.getItem('undefined')) çıktı example Txt!.
Jack Giffin

8

Localstorage global olarak eklenmiştir window. Chrome aygıtlarına localstorage'ı kaydettiğimizde, aşağıdaki API'lara sahip olduğunu görüyoruz:

resim açıklamasını buraya girin

Öğeleri silmek için aşağıdaki API'ları kullanabiliriz:

  1. localStorage.clear(): Tüm yerel depoyu temizler
  2. localStorage.removeItem('myItem'): Tek tek öğeleri kaldırmak için

4

İlk olarak, localStorage'ın etkinleştirildiğinden emin olmak için kontrol etmeniz gerekir. Bunu böyle tavsiye ederim:

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

Evet, (bazı durumlarda) localStorage öğesinin pencere nesnesinin bir üyesi olup olmadığını kontrol edebilirsiniz. Bununla birlikte, 'localStorage' dizinine erişmeyi denerseniz iframe sanal alan seçenekleri (diğer şeylerin yanı sıra) bir istisna atar. Bu nedenle, en iyi uygulama nedenlerinden dolayı, localStorage'ın etkin olup olmadığını kontrol etmenin en iyi yolu budur. Ardından, localStorage'ı bu şekilde temizleyebilirsiniz.

if (localStorageEnabled) localStorage.clear();

Örneğin, webkit tarayıcılarında böyle bir hata oluştuktan sonra localStorage'ı temizleyebilirsiniz.

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

Yukarıdaki örnekte, buna gerek yoktur, .bind(window)çünkü onsuz, localStorage.clearfonksiyon sessizce başarısız yapan nesne windowyerine nesnenin bağlamında çalışacaktır localStorage. Bunu göstermek için aşağıdaki örneğe bakın:

window.onerror = localStorage.clear;

aynıdır:

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

3

Tüm öğeyi silmek isterseniz saklanan localStorage sonra

localStorage.clear();

Saklanan tüm anahtarları silmek için bunu kullanın.

Yalnızca belirli bir anahtarı / değeri silmek / kaldırmak istiyorsanız removeItem (anahtar) kullanabilirsiniz .

localStorage.removeItem('yourKey');

2
localStorage.clear();

veya

window.localStorage.clear();

belirli bir öğeyi silmek

window.localStorage.removeItem("item_name");

Belirli bir değeri kimliğe göre kaldırmak için:

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

Javascript kullanarak tarayıcınızda depolanan yerel depoyu temizleyecek basit bir kod

    <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>

Yerel depolama alanının boş olup olmadığını onaylamak için bu kodu kullanın:

<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>

null değerini döndürürse yerel depolama alanınız temizlenir.


0

Bu kod burada silmek istemediğiniz anahtar dizelerinin listesini verir, ardından yerel depolamadaki tüm anahtarlardan filtreler ve ardından diğerlerini siler.

const allKeys = Object.keys(localStorage);

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

toBeDeleted.forEach(value => {
  localStorage.removeItem(value);
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.