Estoy buscando códigos y bibliotecas de JavaScript que puedan simular localStorage
en navegadores que no tienen soporte nativo.
Básicamente, me gustaría codificar mi sitio localStorage
para almacenar datos y saber que aún funcionará en navegadores que no lo admitan de forma nativa. Esto significaría que una biblioteca detectaría si window.localStorage
existe y la usaría si existe. Si no existe, entonces crearía algún tipo de método alternativo de almacenamiento local, creando su propia implementación en el window.localStorage
espacio de nombres.
Hasta ahora, he encontrado estas soluciones:
- Implementación de sessionStorage simple .
- Una implementación que utiliza cookies (no está encantada con esta idea).
- Dojox.storage de Dojo , pero es algo propio, no una alternativa.
Entiendo que Flash y Silverlight también se pueden usar para almacenamiento local, pero no he encontrado nada sobre su uso como respaldo para HTML5 localStorage estándar. ¿Quizás Google Gears también tiene esta capacidad?
Comparta las bibliotecas, los recursos o los fragmentos de código relacionados que haya encontrado. Estaría especialmente interesado en soluciones basadas en javascript puro o jquery, pero supongo que es poco probable.
fuente
Respuestas:
Yo uso PersistJS ( repositorio de github ), que maneja el almacenamiento del lado del cliente de manera transparente y sin problemas para su código. Utiliza una única API y obtiene soporte para los siguientes backends:
Cualquiera de ellos puede desactivarse, si, por ejemplo, no desea utilizar cookies. Con esta biblioteca, obtendrá soporte de almacenamiento nativo del lado del cliente en IE 5.5+, Firefox 2.0+, Safari 3.1+ y Chrome; y soporte asistido por complementos si el navegador tiene Flash o Gears. Si habilita las cookies, funcionará en todo (pero estará limitado a 4 kB).
fuente
Polyfill de almacenamiento local simple basado en JS puro:
Demostración: http://jsfiddle.net/aamir/S4X35/
HTML:
JS:
fuente
var expires
localmente y luego al usuario en otro ámbito? en funciónset
¿Has visto la página de polyfill en el wiki de Modernizr?
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills
busque la sección de almacenamiento web en esa página y verá 10 posibles soluciones (a partir de julio de 2011).
¡buena suerte! marca
fuente
A continuación se muestra una versión ordenada de la respuesta de Aamir Afridi que mantiene todo su código encapsulado dentro del alcance local.
Eliminé las referencias que crean una
ret
variable global y también eliminé el análisis de las cadenas almacenadas "verdaderas" y "falsas" en valores booleanos dentro delBrowserStorage.get()
método, lo que podría causar problemas si uno está tratando de almacenar las cadenas "verdaderas" o "falso".Dado que la API de almacenamiento local solo admite valores de cadena, aún se pueden almacenar / recuperar datos variables de JavaScript junto con sus tipos de datos apropiados codificando dichos datos en una cadena JSON, que luego se puede decodificar utilizando una biblioteca de codificación / decodificación JSON como https: //github.com/douglascrockford/JSON-js
fuente
Personalmente prefiero amplify.js . Me ha funcionado muy bien en el pasado y lo recomendé para todas las necesidades de almacenamiento local.
fuente
store.js usa userData e IE y localStorage en otros navegadores.
No intenta hacer nada demasiado complejo
Sin cookies, sin flash, sin jQuery.
API limpia.
5 kb comprimido
https://github.com/marcuswestin/store.js
fuente
La página MDN para el almacenamiento DOM ofrece varias soluciones que utilizan cookies.
fuente
La silla de jardín también parece ser una buena alternativa
fuente
Existe realstorage , que usa Gears como alternativa.
fuente