ejemplos - sessionstorage javascript
¿Qué tan persistente es localStorage? (5)
Básicamente, no debes depender mucho del almacenamiento local.
El Almacenamiento Local, junto con el Almacenamiento de Sesión, pretende ser un reemplazo de las cookies, definiendo una API más consistente. Hay algunas diferencias con las cookies:
- Si bien las cookies son accesibles desde el lado del cliente y del servidor, en general, el almacenamiento web y, en particular, el almacenamiento local solo son accesibles desde el lado del cliente.
- Capacidad mejorada (oficial para las cookies es de 4 KB) a más de 5 MB por dominio (Firefox, Google Chrome y Opera y 10 MB en IE).
Entonces sí , tu suposición es correcta.
Depende mucho de localStorage por un complemento que estoy escribiendo. Toda la configuración del usuario está almacenada en ella. Algunas configuraciones requieren que el usuario escriba las expresiones regulares y estarían tristes si sus reglas de expresiones regulares se han ido en algún momento. Así que ahora me pregunto cuán persistente es el LocalStorage.
De las especificaciones :
Los agentes de usuario deben caducar los datos de las áreas de almacenamiento local solo por razones de seguridad o cuando el usuario así lo solicite.
Lo anterior parece que funciona igual que las cookies en el lado del cliente. Es decir, cuando el usuario borre todos los datos del navegador (historial, cookies, caché, etc.), localStorage también se truncará. ¿Es correcta esta suposición?
El almacenamiento local está diseñado para ser un almacén confiable y persistente de datos en un cliente. No está diseñado como una "mejor cookie": esa función está diseñada para ser cumplida por el Almacenamiento de Sesión.
A partir de la Recomendación del candidato de especificaciones de almacenamiento web de diciembre de 2011 ,
(Almacenamiento local) está diseñado para el almacenamiento que abarca varias ventanas y dura más allá de la sesión actual. En particular, las aplicaciones web pueden desear almacenar megabytes de datos de usuario, como documentos completos creados por el usuario o el buzón de un usuario, en el lado del cliente por motivos de rendimiento.
Como datos del lado del cliente, es tan persistente como cualquier dato del lado del cliente, dentro de los límites de tamaño que implementa el navegador. Los usuarios pueden eliminarlo en cualquier momento, abrirlo en un editor de texto y editar, etc., al igual que CUALQUIER dato del lado del cliente.
Mozilla lo implementa como cookies:
DOM Storage se puede borrar a través de "Herramientas -> Borrar historial reciente -> Cookies" cuando el rango de tiempo es "Todo" (a través de nsICookieManager :: removeAll)
https://developer.mozilla.org/en/DOM/Storage
En DOM Storage no es posible especificar un período de vencimiento para ninguno de sus datos. Todas las reglas de vencimiento quedan en manos del usuario. En el caso de Mozilla, la mayoría de esas reglas se heredan de las reglas de caducidad relacionadas con las cookies. Debido a esto, probablemente pueda esperar que la mayoría de sus datos de almacenamiento DOM duren al menos durante un tiempo significativo.
Chrome lo implementa como caché:
LocalStorage no es almacenamiento seguro
El almacenamiento local HTML5 guarda los datos sin cifrar en forma de cadena en la memoria caché del navegador habitual .
Persistencia
En el disco hasta que el usuario lo elimine (elimine el caché) o la aplicación
https://developers.google.com/web-toolkit/doc/latest/DevGuideHtml5Storage
En cuanto a un "reemplazo de la Cookie", no del todo
Las cookies y el almacenamiento local realmente sirven para diferentes propósitos. Las cookies son principalmente para leer en el lado del servidor, LocalStorage solo se puede leer en el lado del cliente. Entonces, la pregunta es, en su aplicación, ¿quién necesita esta información, el cliente o el servidor?
Si está utilizando localStorage para una aplicación de iOS, tenga mucho cuidado. La última versión de iOS (5.1 fuera de mi cabeza) ha movido los datos de localstorage y localdb a una parte de la caché que se borra regularmente, es decir, no persiste. No puedo decir todavía si esto es un error o un cambio de política.
Una cosa a tener en cuenta sobre el uso de almacenamiento local. Es muy específico del navegador. Si almacena datos con Firefox, no estarán disponibles en Chrome, es decir, etc. Además, en cuanto a la eliminación de cookies y sesiones, me he dado cuenta de que también es específico del navegador para saber si el almacenamiento local está despejado o no. Vería los detalles mucho si realmente está pensando en confiar en el almacenamiento local de una aplicación.