localStorage y sessionStorage

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

¿Cuál de las siguientes afirmaciones describe mejor la diferencia clave entre localStorage y sessionStorage?

  • Ambos almacenan datos de la misma manera y tienen la misma duración.
  • `localStorage` está disponible para el servidor, mientras que `sessionStorage` solo está disponible para el cliente.
  • `sessionStorage` tiene mayor capacidad de almacenamiento que `localStorage`.
  • `localStorage` persiste los datos entre sesiones del navegador, mientras que `sessionStorage` almacena los datos solo durante la sesión del navegador. (correct)

Es seguro almacenar contraseñas sin cifrar en localStorage ya que está protegido del acceso externo.

False (B)

¿Qué método se utiliza para eliminar un elemento específico del localStorage o sessionStorage?

removeItem(clave)

Para convertir un objeto JavaScript a un string JSON antes de guardarlo en localStorage, se utiliza el método JSON.______(objeto).

<p>stringify</p> Signup and view all the answers

Empareja los siguientes métodos con su descripción:

<p><code>setItem(clave, valor)</code> = Añade o actualiza un par clave-valor en el almacenamiento. <code>getItem(clave)</code> = Recupera el valor asociado a la clave especificada. <code>clear()</code> = Elimina todos los pares clave-valor del almacenamiento. <code>key(índice)</code> = Retorna el nombre de la clave en la posición del índice especificado.</p> Signup and view all the answers

¿Qué ocurre si intentas recuperar un valor de localStorage utilizando getItem(clave) con una clave que no existe?

<p>Retorna <code>null</code>. (A)</p> Signup and view all the answers

Acceder a localStorage y sessionStorage es una operación asíncrona que no bloquea el hilo principal del navegador.

<p>False (B)</p> Signup and view all the answers

¿Qué tipo de error se produce si se excede la cuota de almacenamiento permitida por el navegador al intentar guardar datos en localStorage?

<p><code>QuotaExceededError</code></p> Signup and view all the answers

______ es útil para almacenar datos del carrito de compras durante la sesión del usuario.

<p><code>sessionStorage</code></p> Signup and view all the answers

¿Cuál de las siguientes NO es una buena práctica al utilizar localStorage y sessionStorage?

<p>Almacenar información sensible sin cifrar. (B)</p> Signup and view all the answers

Flashcards

¿Qué es localStorage?

Almacenamiento web que guarda datos localmente en el navegador del usuario, persistiendo entre sesiones.

¿Qué es sessionStorage?

Almacenamiento web que guarda datos solo durante la sesión del navegador, borrándose al cerrar la pestaña o ventana.

Método setItem()

Añade o actualiza un par clave-valor en localStorage o sessionStorage.

Método getItem()

Recupera el valor asociado a una clave específica en localStorage o sessionStorage. Retorna null si la clave no existe.

Signup and view all the flashcards

Método removeItem()

Elimina un par clave-valor específico de localStorage o sessionStorage.

Signup and view all the flashcards

Método clear()

Elimina todos los pares clave-valor de localStorage o sessionStorage.

Signup and view all the flashcards

JSON.stringify()

Convierte un objeto JavaScript a un string JSON para poder almacenarlo en localStorage o sessionStorage.

Signup and view all the flashcards

JSON.parse()

Convierte un string JSON a un objeto JavaScript, después de recuperarlo de localStorage o sessionStorage.

Signup and view all the flashcards

Error QuotaExceededError

Error que ocurre al exceder la cuota de almacenamiento permitida en localStorage o sessionStorage.

Signup and view all the flashcards

Seguridad en almacenamiento web

Medidas para proteger información sensible guardada en localStorage o sessionStorage, como contraseñas.

Signup and view all the flashcards

Study Notes

  • localStorage y sessionStorage son mecanismos de almacenamiento web que permiten a los navegadores guardar información localmente en el dispositivo del usuario.

Propiedades Comunes

  • Ambos (localStorage y sessionStorage) almacenan datos como pares clave-valor.
  • Solo pueden guardar strings; otros tipos de datos deben ser serializados (convertidos a string) antes de almacenarlos y deserializados al recuperarlos.
  • Están limitados por el dominio, por lo que solo se puede acceder a los datos guardados por scripts que se ejecutan en el mismo dominio que los guardó.
  • Ofrecen métodos similares para manipular los datos: setItem(), getItem(), removeItem(), clear(), y key().
  • No están disponibles para el servidor; la información se almacena solo en el lado del cliente.

localStorage

  • Los datos persisten entre sesiones del navegador, estando disponibles incluso después de cerrar y volver a abrir el navegador.
  • Tiene una capacidad de almacenamiento mayor que las cookies.
  • La información guardada no se envía automáticamente con cada petición HTTP al servidor, ahorrando ancho de banda.
  • Es útil para almacenar configuraciones de usuario, datos de aplicaciones offline, o información que no cambia frecuentemente.
  • Ejemplo:
    • Guardar: localStorage.setItem('tema', 'oscuro');
    • Recuperar: let tema = localStorage.getItem('tema');

sessionStorage

  • Los datos se almacenan solo durante la duración de la sesión del navegador, borrándose al cerrar la pestaña o ventana del navegador.
  • Es similar a localStorage en términos de API (métodos para manipular datos), pero con una vida útil más corta.
  • Es útil para almacenar información temporal relacionada con la sesión del usuario, como datos de un carrito de compras antes de finalizar la compra, o el estado de la sesión actual.
  • Ejemplo:
    • Guardar: sessionStorage.setItem('carrito', JSON.stringify(productosCarrito));
    • Recuperar: let productosCarrito = JSON.parse(sessionStorage.getItem('carrito'));

Métodos Principales

  • setItem(clave, valor): Añade o actualiza un par clave-valor en el almacenamiento.
  • getItem(clave): Recupera el valor asociado a la clave especificada, retornando null si la clave no existe.
  • removeItem(clave): Elimina el par clave-valor asociado a la clave especificada.
  • clear(): Elimina todos los pares clave-valor del almacenamiento.
  • key(índice): Retorna el nombre de la clave en la posición del índice especificado.

Serialización y Deserialización

  • Dado que ambos almacenamientos solo admiten strings, es necesario serializar objetos JavaScript a strings antes de guardarlos y deserializarlos al recuperarlos.
  • JSON.stringify(objeto): Convierte un objeto JavaScript a un string JSON.
  • JSON.parse(string): Convierte un string JSON a un objeto JavaScript.

Manejo de Errores

  • Almacenar datos en localStorage o sessionStorage puede fallar si se excede la cuota de almacenamiento permitida por el navegador.
  • Es recomendable implementar mecanismos de manejo de errores (try-catch) para capturar excepciones QuotaExceededError y actuar en consecuencia (por ejemplo, limpiar datos innecesarios o informar al usuario).

Seguridad

  • No guardar información sensible (como contraseñas o información personal confidencial) en localStorage o sessionStorage, ya que son accesibles por scripts del lado del cliente y pueden ser vulnerables a ataques XSS (Cross-Site Scripting).
  • Considerar el uso de medidas de seguridad adicionales, como el cifrado, para proteger información sensible si es absolutamente necesario almacenarla en el lado del cliente.

Casos de Uso Comunes para localStorage

  • Guardar las preferencias del usuario, como el tema de la aplicación (claro/oscuro), el idioma, la configuración de la fuente, etc.
  • Almacenar datos de formularios para rellenarlos automáticamente en futuras visitas.
  • Implementar funcionalidades offline, como guardar datos temporalmente mientras el usuario no tiene conexión a internet.
  • Almacenar tokens de autenticación (con precauciones de seguridad).

Casos de Uso Comunes para sessionStorage

  • Almacenar datos del carrito de compras durante la sesión del usuario.
  • Guardar el estado de la sesión actual, como la página en la que se encuentra el usuario o los filtros aplicados.
  • Almacenar datos temporales que se necesitan en varias páginas durante la sesión, pero que no deben persistir después de que el usuario cierra el navegador.
  • Manejar la información de inicio de sesión temporalmente.

Consideraciones de Rendimiento

  • Acceder a localStorage y sessionStorage es una operación síncrona que puede bloquear el hilo principal del navegador, especialmente si se almacenan grandes cantidades de datos.
  • Evitar realizar operaciones intensivas de lectura/escritura en localStorage y sessionStorage en momentos críticos del rendimiento, como durante la animación o el scroll.
  • Considerar el uso de Web Workers para realizar operaciones en segundo plano y evitar bloquear la interfaz de usuario.

Cuotas de Almacenamiento

  • Los navegadores imponen cuotas de almacenamiento a localStorage y sessionStorage para evitar que los sitios web consuman demasiado espacio en el dispositivo del usuario.
  • La cuota exacta varía según el navegador y el dispositivo, pero generalmente se sitúa entre 5MB y 10MB por dominio.
  • Se puede verificar el espacio disponible y utilizado mediante APIs específicas del navegador (aunque no existe un estándar).

Limpieza de Datos

  • Es importante implementar mecanismos para limpiar los datos almacenados en localStorage y sessionStorage que ya no son necesarios para evitar consumir espacio innecesario y mejorar el rendimiento.
  • Se puede implementar una política de caducidad para eliminar datos antiguos automáticamente.
  • Ofrecer a los usuarios la opción de limpiar sus datos almacenados localmente.

Diferencias Clave Resumidas

  • localStorage: Persistente entre sesiones del navegador; mayor capacidad de almacenamiento.
  • sessionStorage: Temporal, dura solo la sesión del navegador; útil para datos temporales específicos de la sesión.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

More Like This

Configuring Local Storage and Partitioning
10 questions
Lokalt lagring i nettlesere
10 questions

Lokalt lagring i nettlesere

ReformedHammeredDulcimer avatar
ReformedHammeredDulcimer
Use Quizgecko on...
Browser
Browser