Limpando localStorage em javascript?


Respostas:


1371

Use isso para limpar localStorage:

localStorage.clear();

6
@BakedInhalf nem um pouco. Talvez seu aplicativo o configure novamente?
destan

5
Chamo localStorage.clear () quando meu aplicativo é iniciado, mas mesmo se eu fechar o navegador, limpar o cache etc., os dados ainda estarão lá. Eu sei disso porque defini uma propriedade "instance" no meu modelo como um número aleatório ao inicializar e, para um determinado ID, a propriedade da instância é sempre a mesma.
sydneyos

11
@ digital-plane Isso limpará o armazenamento local de um domínio específico ou todo o armazenamento?
Cris3

18
clear()removerá todas as chaves e valores localStorage do domínio específico em que você está. O Javascript não pode obter valores localStorage de outros domínios devido ao CORS.
Fizzix 20/03

1
@BakedInhalf está certo, ele permanece até você atualizar a página com força. Quando você limpa o armazenamento local e o preenche logo depois, ele meio que restaura o conteúdo anterior e adiciona um novo item a ele. Quando você limpa o LocalStorage e faz uma atualização forçada, ele está vazio e você pode começar a preenchê-lo novamente.
do Cyber

198

Se você deseja remover um item ou variável específica do armazenamento local do usuário, pode usar

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

1
Olá, @Ajeet Se eu não quiser remover um item específico, também há uma maneira de fazer isso? Por exemplo 'removeItemNotIn (key)', 'remove all, exceto uma chave definida'? Desde já, obrigado.
Me_developer

Olá, @Shadow Se não quiser remover um item em particular, também há uma maneira de fazê-lo? Por exemplo 'removeItemNotIn (key)', 'remove all, exceto uma chave definida'? Desde já, obrigado.
Me_developer

Eu descobri uma solução para o meu problema: - if (localStorage.getItem (particularKey) == null) {localStorage.clear (); } Mas se você tiver uma solução melhor, informe-me. Obrigado.
Me_developer

1
@learner Então, você deseja remover todas as chaves, exceto uma chave específica , certo? Para isso você pode fazer algo como isto var key; for (var i = 0; i < localStorage.length; i++) { key = localStorage.key(i); if(key != particularKey){ localStorage.removeItem(key); } }
Ajeet Lakhani

1
Também é possível: obter o valor, limpar e definir o valor novamente, mais versátil. let tmp = localStorage.getItem('<your-name>'); localStorage.clear(); localStorage.setItem('<your-name>')
Michael B.


11

Aqui está uma função que permitirá remover todos os itens localStorage com exceções. Você precisará do jQuery para esta função. Você pode baixar a essência .

Você pode chamar assim

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
Estranho é que undefinedé uma chave válida para setItemegetItem
ebob

@ Bob Sim, pode parecer estranho, mas não, realmente não é. localStorage funciona de maneira semelhante aos objetos em que as chaves são convertidas em seqüências de caracteres. Por exemplo, usar undefined como uma chave como esta localStorage.setItem(undefined, 'example Txt!'):, irá armazená-lo na chave chamada 'undefined'como você pode ver quando executar o código a seguir. console.log(localStorage.getItem('undefined')) será exibido example Txt!.
Jack Giffin

8

O armazenamento local está anexado no global window. Quando registramos o armazenamento local no devtools do chrome, vemos que ele possui as seguintes APIs:

insira a descrição da imagem aqui

Podemos usar as seguintes APIs para excluir itens:

  1. localStorage.clear(): Limpa todo o armazenamento local
  2. localStorage.removeItem('myItem'): Para remover itens individuais

4

Primeiramente, você precisa verificar se o localStorage está ativado. Eu recomendaria fazê-lo assim:

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

Sim, você pode (em alguns casos) apenas verificar se o localStorage é um membro do objeto de janela. No entanto, existem opções de sandbox de iframe (entre outras coisas) que lançarão uma exceção se você tentar acessar o índice 'localStorage'. Portanto, por motivos de melhores práticas, esta é a melhor maneira de verificar se o localStorage está ativado. Em seguida, você pode simplesmente limpar o localStorage assim.

if (localStorageEnabled) localStorage.clear();

Por exemplo, você pode limpar o localStorage após a ocorrência de um erro nos navegadores do kit da web.

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

No exemplo acima, você precisa do .bind(window)porque, sem ele, a localStorage.clearfunção será executada no contexto do windowobjeto, em vez de o localStorageobjeto causar uma falha silenciosa. Para demonstrar isso, veja o exemplo abaixo:

window.onerror = localStorage.clear;

é o mesmo que:

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

3

Se você deseja limpar todos os itens armazenados no localStorage ,

localStorage.clear();

Use isso para limpar todas as chaves armazenadas.

Se você deseja limpar / remover apenas uma chave / valor específico, pode usar removeItem (chave) .

localStorage.removeItem('yourKey');

2
localStorage.clear();

ou

window.localStorage.clear();

limpar item específico

window.localStorage.removeItem("item_name");

Para remover um valor específico por ID:

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;
                }
            });

1

Para limpar o sessionStorage

sessionStorage.clear();

0

Aqui está um código simples que limpa o armazenamento local armazenado no seu navegador usando javascript

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

Para confirmar se o armazenamento local está vazio, use este código:

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

se retornar nulo, seu armazenamento local será limpo.


0

Este código aqui fornece uma lista de cadeias de chaves que você não deseja excluir e, em seguida, filtra aquelas de todas as chaves no armazenamento local e exclui as outras.

const allKeys = Object.keys(localStorage);

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

toBeDeleted.forEach(value => {
  localStorage.removeItem(value);
});
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.