Estou procurando bibliotecas javascript e código que possa simular localStorage
em navegadores que não têm suporte nativo.
Basicamente, gostaria de codificar meu site localStorage
para armazenar dados e saber que ele ainda funcionará em navegadores que não os suportam nativamente. Isso significaria que uma biblioteca detectaria se existiria window.localStorage
e usaria se existir. Se não existir, criaria algum tipo de método de fallback de armazenamento local, criando sua própria implementação no window.localStorage
espaço para nome.
Até agora, encontrei estas soluções:
- Implementação simples sessionStorage .
- Uma implementação que usa cookies (não se emociona com essa ideia).
- Dojox.storage do Dojo , mas é coisa própria, não é realmente um substituto.
Entendo que o Flash e o Silverlight também podem ser usados para armazenamento local, mas não encontrei nada sobre como usá-los como substituto do localStorage HTML5 padrão. Talvez o Google Gears também tenha esse recurso?
Compartilhe as bibliotecas, recursos ou snippets de código relacionados que você encontrou! Eu estaria especialmente interessado em javascript puro ou soluções baseadas em jquery, mas acho que isso é improvável.
fonte
Respostas:
Eu uso o PersistJS ( repositório github ), que lida com o armazenamento do lado do cliente de maneira perfeita e transparente ao seu código. Você usa uma única API e obtém suporte para os seguintes back-end:
Qualquer uma dessas opções pode ser desativada - se, por exemplo, você não deseja usar cookies. Com esta biblioteca, você obterá suporte de armazenamento nativo do lado do cliente no IE 5.5+, Firefox 2.0+, Safari 3.1+ e Chrome; e suporte assistido por plug-in se o navegador tiver Flash ou Gears. Se você ativar os cookies, ele funcionará em tudo (mas será limitado a 4 kB).
fonte
Polyfill localStorage simples baseado em JS puro:
Demonstração: http://jsfiddle.net/aamir/S4X35/
HTML:
JS:
fonte
var expires
localmente e depois o usuário em outro escopo? em funçãoset
você viu a página polyfill no wiki Modernizr?
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills
procure a seção de armazenamento na web nessa página e verá 10 soluções em potencial (a partir de julho de 2011).
boa sorte! Marca
fonte
Abaixo está uma versão ordenada da resposta de Aamir Afridi que mantém todo o seu código encapsulado no escopo local.
Eu removi referências que criam uma
ret
variável global e também removemos a análise de seqüências armazenadas "true" e "false" em valores booleanos dentro doBrowserStorage.get()
método, o que poderia causar problemas se alguém estivesse tentando armazenar as seqüências "true" ou "falso".Como a API de armazenamento local suporta apenas valores de cadeia, ainda é possível armazenar / recuperar dados variáveis de JavaScript junto com seus tipos de dados apropriados, codificando esses dados em uma cadeia JSON, que pode ser decodificada usando uma biblioteca de codificação / decodificação JSON, como https: //github.com/douglascrockford/JSON-js
fonte
Eu pessoalmente prefiro amplify.js . Ele funcionou muito bem para mim no passado e eu o recomendei para todas as necessidades de armazenamento local.
fonte
O store.js usa userData e IE e localStorage em outros navegadores.
Ele não tenta fazer algo muito complexo
Sem cookies, sem flash, sem jQuery necessário.
API limpa.
5 kb comprimido
https://github.com/marcuswestin/store.js
fonte
A página MDN para armazenamento DOM fornece várias soluções alternativas que usam cookies.
fonte
Lawnchair parece ser uma boa alternativa também
fonte
Há armazenamento real , que usa o Gears como substituto.
fonte