Quando localStorage é limpo?

112

Por quanto tempo posso esperar que os dados sejam mantidos em localStorage. Por quanto tempo os dados localStorage de um usuário médio persistirão? Se o usuário não limpar, isso vai durar até a reinstalação do navegador?

Isso é consistente em todos os navegadores?

Bnicholas
fonte

Respostas:

99

O rascunho do W3C diz isso

Os agentes do usuário devem expirar os dados das áreas de armazenamento local apenas por motivos de segurança ou quando solicitados a fazê-lo pelo usuário. Os agentes de usuário devem sempre evitar a exclusão de dados durante a execução de um script que possa acessar esses dados.

Portanto, se os navegadores seguirem as especificações, ele deve persistir até que o usuário o remova em todos os navegadores, não encontrei nenhum que tenha sido excluído em nenhum dos meus projetos.

Um bom artigo para ler também é http://ejohn.org/blog/dom-storage/

Dominic Green
fonte
"Solicitado pelo usuário" = quando o usuário apaga os dados. Consulte stevesouders.com/blog/2012/09/10/clearing-browser-data para limpeza específica do navegador e como fazê-lo.
Julien Kronegg
O armazenamento local pode ser limpo ao atualizar o cromo. Isso aconteceu comigo duas vezes nos últimos 12 meses. Se os dados forem importantes, habilite e incentive o usuário a fazer download dos dados relevantes para o arquivo para que possa ser reinstalado se isso acontecer.
user2677034
116

localStorage também é conhecido como Web Storage, HTML5 Storage e DOM Storage (todos significam a mesma coisa).

localStorage é semelhante a sessionStorage, exceto que os dados armazenados em localStorage não têm tempo de expiração, enquanto os dados armazenados em sessionStorage são apagados quando a sessão de navegação termina (ou seja, quando a guia do navegador / navegador é fechada). O armazenamento de sessão é usado com muito menos frequência do que localStorage e existe apenas na guia atual do navegador - até mesmo duas guias carregadas com o mesmo site terão dados de sessionStorage diferentes. Os dados de sessionStorage sobrevivem à atualização da página, mas não fecham / abrem a guia. Os dados LocalStorage, por outro lado, são compartilhados entre todas as guias e janelas da mesma origem. Os dados LocalStorage não expiram; permanece após o navegador ser reiniciado e mesmo após a reinicialização do sistema operacional. Fonte

localStorage está disponível em todos os navegadores, mas a persistência não é implementada de forma consistente. Em particular, localStorage pode ser limpo pela ação do usuário e pode ser limpo inadvertidamente (quem pensaria que limpar todos os cookies também limpa localStorage?).

No Firefox, localStorage é limpo quando estas três condições são atendidas: (a) o usuário limpa o histórico recente, (b) os cookies são selecionados para serem limpos, (c) o intervalo de tempo é "Tudo"

No Chrome, localStorage é limpo quando estas condições são atendidas: (a) limpar os dados de navegação, (b) "cookies e outros dados do site" é selecionado, (c) o período de tempo é "desde o início". No Chrome, agora também é possível excluir localStorage de um site específico .

No IE, para limpar o localStorage: (a) Ferramentas - Opções da Internet, (b) Guia Geral, (c) excluir o histórico de navegação ao sair, (d) garantir "Cookies e dados do site" (ou "arquivos temporários da Internet e arquivos do site ") for selecionado, (e) considere desmarcar" Preservar dados de sites favoritos "na parte superior

No Safari: (a) Clique em Safari (b) Preferências (c) Selecione a guia Privacidade (d) Clique em Remover todos os dados do site (e) Clique em Remover Agora

Opera: Apesar dos excelentes artigos sobre localStorage do site Opera, ainda não encontrei instruções claras (não programáticas) para os usuários sobre como limpar o localStorage. Se alguém encontrar, por favor, deixe um comentário abaixo desta resposta com link de referência.


O site de desenvolvimento do Opera tem um excelente resumo de localStorage:

A forma atual de armazenamento de dados no lado do cliente - cookies - é um problema:

  • Tamanho baixo: os cookies geralmente têm um tamanho máximo de cerca de 4 KB, o que não é muito bom para armazenar qualquer tipo de dados complexos

  • É difícil para os cookies acompanharem duas ou mais transações no mesmo site, o que pode estar acontecendo em duas ou mais guias diferentes

  • Os cookies podem ser explorados usando técnicas como cross site scripting, resultando em violações de segurança

Outras alternativas (menos populares) para cookies incluem técnicas envolvendo strings de consulta, campos de formulário ocultos, objetos compartilhados locais baseados em flash, etc. Cada um com seu próprio conjunto de problemas relacionados à segurança, facilidade de uso, restrições de tamanho, etc. Portanto, até agora, nós têm usado maneiras muito ruins de armazenar dados do usuário. Precisamos de uma maneira melhor, que é onde entra o Web Storage.

Armazenamento web

A especificação W3C Web Storage foi projetada como uma maneira melhor de armazenar dados no lado do cliente. Ele tem dois tipos diferentes de armazenamento: Armazenamento de Sessão e Armazenamento Local.

Tanto a sessão quanto o armazenamento local normalmente serão capazes de armazenar cerca de 5 MB de dados por domínio, o que é significativamente mais do que cookies.

Recursos:

https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

https://javascript.info/localstorage

https://dev.opera.com/articles/web-storage/

http://www.quirksmode.org/html5/storage.html

http://www.ghacks.net/2015/02/05/how-to-clear-web-storage-in-your-browser-of-choice/

https://nakedsecurity.sophos.com/2014/11/05/how-to-clear-out-cookies-flash-cookies-and-local-storage/

http://www.opera.com/dragonfly/documentation/storage/

Artigo DOMStorage sobre MDN (escrito por John Resig)

http://ejohn.org/blog/dom-storage/

cssifo
fonte
2
Eu acrescentaria, você pode realmente ver, modificar e remover essas vars localStorage no "Modo de Desenvolvimento" (pressionando F12), na guia Armazenamento.
David Tabernero M.
É o mesmo caso com indexDB? Ou seja, também pode ser limpo pela ação do usuário?
Pylinux
No IE Além das etapas acima, o usuário precisa fechar o navegador para que apenas ele veja a remoção do localstorage
Kyasa Madhavi
2

O conteúdo no armazenamento local é persistente, desde que o usuário opte por limpar o armazenamento (totalmente ou um único valor dentro dele)

Sobre a consistência no navegador, o localstorage está atualmente disponível em todos os principais navegadores, incluindo o IE8 + (consulte http://caniuse.com/#feat=namevalue-storage )

Fabrizio Calderan
fonte
1

No Chrome, durante a execução de 'limpar dados de navegação', se você escolher a opção 'Cookies e outros dados de site e plug-in', os dados de sessionStorage serão apagados.

Uday Sravan K
fonte