El desarrollo de aplicaciones web ha llevado a un uso cada vez mayor del almacenamiento del lado del cliente y existen varias formas de implementar el almacenamiento del lado del cliente. La solución más simple y compatible es Cookie, pero como almacenamiento real del lado del cliente, Cookie tiene muchos defectos fatales. Además, userData Behavior también se puede usar en IE6 y superior, globalStorage se puede usar en Firefox y Flash Local Storage se puede usar en entornos con complementos Flash. Sin embargo, todos estos métodos tienen limitaciones de compatibilidad, por lo que en realidad no lo son. ideal para usar. En respuesta a la situación anterior, HTML5 proporciona una solución más ideal: si necesita almacenar datos complejos, puede usar Web Database y puede usar SQL como un programa cliente (pero el estándar de Web Database está actualmente estancado y Actualmente, los navegadores que se han implementado son muy limitados; si necesita almacenar datos que se pueden resolver simplemente con pares clave/valor, puede usar Web Storage . Este artículo presenta principalmente la situación específica del almacenamiento web desde varios aspectos.
almacenamiento de sesión y almacenamiento local
Web Storage en realidad consta de dos partes: sessionStorage y localStorage.
sessionStorage se utiliza para almacenar datos localmente en una sesión. Solo las páginas de la misma sesión pueden acceder a estos datos y los datos se destruyen cuando finaliza la sesión. Por lo tanto, sessionStorage no es un almacenamiento local persistente, solo un almacenamiento a nivel de sesión.
localStorage se utiliza para el almacenamiento local persistente, a menos que los datos se eliminen activamente, los datos nunca caducarán.
¿Por qué elegir almacenamiento web en lugar de cookies?
Comparado con las Cookies, el Almacenamiento Web tiene muchas ventajas, que se resumen a continuación:
1. Mayor espacio de almacenamiento: cada espacio de almacenamiento independiente en IE8 es de 10 M. La implementación de otros navegadores es ligeramente diferente, pero es mucho más grande que Cookie.
2. El contenido almacenado no se enviará al servidor: cuando se configura una cookie, el contenido de la cookie se enviará al servidor junto con la solicitud, lo que supone un desperdicio de ancho de banda para los datos almacenados localmente. Los datos en Web Storage solo existen localmente y no interactúan con el servidor de ninguna manera.
3. Interfaces más ricas y fáciles de usar: Web Storage proporciona un conjunto más rico de interfaces, lo que facilita las operaciones de datos.
4. Espacio de almacenamiento independiente: cada dominio (incluidos los subdominios) tiene un espacio de almacenamiento independiente. Cada espacio de almacenamiento es completamente independiente, por lo que no habrá confusión de datos.
¿Cómo es la compatibilidad?
Se realizaron las siguientes pruebas en los siguientes navegadores: IE8, Firefox3.6, Chrome5, Safari4, Opera10. Resulta que la implementación de las API en cada navegador es básicamente la misma y existen ciertos problemas de compatibilidad, pero no lo son. afectar el uso normal.
prueba de almacenamiento de sesión
Esta sección prueba principalmente algunas características de sessionStorage. La prueba se centra en la definición de sesión por cada navegador y la situación entre dominios. El método de prueba es muy simple: abra la página A , escriba los datos de la sesión actual en la página A y luego use diferentes métodos para ingresar a la página B a través de los enlaces o botones en la página A. Si la página B puede acceder a los datos en la página A, esto significa que el navegador considera las páginas actuales A y B como la misma sesión. Los resultados específicos de la prueba se muestran en la Tabla 1:
Tabla 1 prueba de compatibilidad de almacenamiento de sesión
Como se puede ver en la Tabla 1, por razones de seguridad, no se permite acceder a los datos de la sesión entre dominios en todos los navegadores, incluidos los subdominios cruzados. En otros aspectos, la implementación en los navegadores convencionales es relativamente consistente.