stringtranslate.com

almacenamiento web

El almacenamiento web , a veces conocido como almacenamiento DOM ( almacenamiento del modelo de objetos de documento ), es una API de JavaScript estándar proporcionada por los navegadores web . Permite que los sitios web almacenen datos persistentes en los dispositivos de los usuarios de manera similar a las cookies , pero con una capacidad mucho mayor [1] y sin información enviada en encabezados HTTP . [2] Hay dos tipos principales de almacenamiento web: almacenamiento local y almacenamiento de sesión, que se comportan de manera similar a las cookies persistentes y las cookies de sesión, respectivamente. El almacenamiento web está estandarizado por el World Wide Web Consortium (W3C) [3] y WHATWG , [4] y es compatible con los principales navegadores.

Características

El almacenamiento web se diferencia de las cookies en algunos aspectos clave.

Objetivo

Las cookies están destinadas a la comunicación con los servidores; se agregan automáticamente a todas las solicitudes y pueden acceder a ellos tanto el lado del servidor como el del cliente. El almacenamiento web cae exclusivamente dentro del ámbito de las secuencias de comandos del lado del cliente . Los datos del almacenamiento web no se transmiten automáticamente al servidor en cada solicitud HTTP y un servidor web no puede escribir directamente en el almacenamiento web. Sin embargo, cualquiera de estos efectos se puede lograr con scripts explícitos del lado del cliente, lo que permite ajustar la interacción deseada del servidor.

Tamaño de almacenamiento

Las cookies están restringidas a 4 kilobytes. El almacenamiento web proporciona una capacidad de almacenamiento mucho mayor:

Almacenamiento local y de sesión

El almacenamiento web ofrece dos áreas de almacenamiento diferentes (almacenamiento local y almacenamiento de sesión) que difieren en alcance y duración. Los datos colocados en el almacenamiento local son por origen: la combinación de protocolo, nombre de host y número de puerto tal como se define en la política del mismo origen . Los datos están disponibles para todos los scripts cargados desde páginas del mismo origen que almacenaron previamente los datos y persisten después de cerrar el navegador. Como tal, el almacenamiento web no sufre los problemas de integridad débil y confidencialidad débil de las cookies, descritos en las secciones 8.5 y 8.6 de RFC  6265. El almacenamiento de la sesión es tanto por origen como por instancia (por ventana o por pestaña) y está limitado a la vida útil de la instancia. El almacenamiento de sesiones está destinado a permitir que instancias separadas de la misma aplicación web se ejecuten en diferentes ventanas sin interferir entre sí, un caso de uso que las cookies no admiten bien. [9]

Interfaz y modelo de datos.

El almacenamiento web proporciona una mejor interfaz programática que las cookies porque expone un modelo de datos de matriz asociativa donde las claves y los valores son cadenas .

Uso

Los navegadores que admiten almacenamiento web tienen objetos globales sessionStoragey localStoragese declaran a nivel de ventana. El siguiente código JavaScript se puede utilizar en estos navegadores para activar el comportamiento de almacenamiento web:

// Almacena el valor en el navegador durante la sesión sessionStorage . setItem ( 'clave' , 'valor' ); // Recuperar valor (se elimina cuando el navegador se cierra y se vuelve a abrir) ... alert ( sessionStorage . getItem ( 'key' ));// Almacenar valor en el navegador más allá de la duración de la sesión localStorage . setItem ( 'clave' , 'valor' ); // Recuperar valor (persiste incluso después de cerrar y volver a abrir el navegador) alerta ( localStorage . getItem ( 'key' ));

Solo se pueden almacenar cadenas a través de la API de almacenamiento. [10] Intentar almacenar un tipo de datos diferente dará como resultado una conversión automática en una cadena en la mayoría de los navegadores. Sin embargo, la conversión a JSON permite el almacenamiento eficaz de objetos JavaScript.

// Almacena un objeto en lugar de una cadena localStorage . setItem ( 'clave' , { nombre : 'valor' }); alerta ( tipo de almacenamiento local . getItem ( 'clave' )); // cadena    // Almacena un número entero en lugar de una cadena localStorage . setItem ( 'clave' , 1 ); alerta ( tipo de almacenamiento local . getItem ( 'clave' )); // cadena   // Almacena un objeto usando JSON localStorage . setItem ( 'clave' , JSON . stringify ({ nombre : 'valor' })); alerta ( JSON . parse ( localStorage . getItem ( 'clave' )). nombre ); // valor   

Nomenclatura

El borrador del W3C se titula "Almacenamiento web". "Almacenamiento DOM" también ha sido un nombre de uso común, aunque cada vez lo es menos; por ejemplo, los artículos web "Almacenamiento DOM" de los sitios para desarrolladores de Mozilla y Microsoft han sido reemplazados por artículos "Almacenamiento web". [11] [12] [13] [14]

El "DOM" en el almacenamiento DOM no se refiere literalmente al modelo de objetos de documento . Según el W3C, "El término DOM se utiliza para referirse al conjunto de API disponibles para los scripts en aplicaciones web, y no implica necesariamente la existencia de un objeto Documento real..." [15]

Gestión de almacenamiento web

El almacenamiento de objetos de almacenamiento web está habilitado de forma predeterminada en las versiones actuales de todos los navegadores web compatibles, y los proveedores de navegadores ofrecen formas para que los usuarios habiliten o deshabiliten de forma nativa el almacenamiento web, o borre el "caché" del almacenamiento web. [16] También se encuentran disponibles controles similares sobre el almacenamiento web a través de extensiones de navegador de terceros . Cada navegador almacena los objetos de almacenamiento web de forma diferente:

Tecnologías similares

Si bien localStorage se usa a menudo para almacenar pares clave-valor persistentes, han surgido otras API para permitir varios casos de uso, como la indexación iterable [19] y con diferentes patrones de rendimiento:

Referencias

  1. ^ ab Dixit, Shwetank (5 de marzo de 2013). "Almacenamiento web: almacenamiento de datos del lado del cliente más sencillo y potente". Dev.Opera . Consultado el 14 de mayo de 2021 .
  2. ^ Hume, Andy (24 de marzo de 2011). "localStorage no son cookies". andyhume.net . Archivado desde el original el 2 de junio de 2011 . Consultado el 14 de mayo de 2021 .
  3. ^ Hickson, Ian, ed. (2021-01-28). "Almacenamiento web (segunda edición)". W3C . Grupo de Trabajo de Plataforma Web . Consultado el 14 de mayo de 2021 .
  4. ^ QUÉ. "Almacenamiento web del estándar HTML § 12". html.spec.whatwg.org . Consultado el 14 de mayo de 2021 .
  5. ^ ab Kitamura, Eiji (28 de enero de 2014). "Trabajar con cuotas en navegadores móviles: un informe de investigación sobre el almacenamiento del navegador: HTML5 Rocks". Archivado desde el original el 1 de febrero de 2014 . Consultado el 4 de mayo de 2021 .
  6. ^ John Resig: Almacenamiento DOM. John Resig, ejohn.org . Recuperado el 12 de junio de 2011.
  7. ^ michaeln (8 de marzo de 2013). "Problema 21680002: Aumento del límite de almacenamiento local de window.localstorage de 5 M a 10 M. - Revisión del código". Reseñas de código de cromo . Consultado el 14 de mayo de 2021 .
  8. ^ Microsoft (20 de octubre de 2016). "Introducción al almacenamiento web". Documentos de Microsoft . Microsoft . Consultado el 14 de mayo de 2021 .
  9. ^ W3C: borrador del estándar de almacenamiento web. Dev.w3.org (5 de febrero de 2004). Recuperado el 12 de junio de 2011.
  10. ^ W3C, 2011 http://dev.w3.org/html5/webstorage/
  11. ^ "Almacenamiento DOM". Red de desarrolladores de Mozilla . Archivado desde el original el 4 de junio de 2011 . Consultado el 12 de junio de 2011 .
  12. ^ "API de almacenamiento web". Red de desarrolladores de Mozilla . Consultado el 28 de junio de 2017 .
  13. ^ "Introducción al almacenamiento DOM". Red de desarrolladores de Microsoft . Archivado desde el original el 8 de junio de 2011 . Consultado el 12 de junio de 2011 .
  14. ^ "Introducción al almacenamiento web". Red de desarrolladores de Microsoft . Consultado el 28 de junio de 2017 .
  15. ^ W3C: borrador del estándar de almacenamiento web. Dev.w3.org (5 de febrero de 2004). Recuperado el 12 de junio de 2011.
  16. ^ Cómo habilitar, deshabilitar o borrar la caché de "Almacenamiento web" de su navegador. Midas. Recuperado el 6 de octubre de 2022.
  17. ^ Webappsstore.sqlite kb.mozillazine.org
  18. ^ ¿ Dónde se almacenan los datos web de Safari? discusiones.apple.com. Consultado el 20 2022-10-06.
  19. ^ "Almacenamiento local en aplicaciones modernas". RxDB . Consultado el 14 de agosto de 2023 .

enlaces externos