LocalStorage en JavaScript: almacenamiento eficiente en aplicaciones web

| Última modificación: 6 de junio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Estás buscando una manera efectiva de almacenar datos en el lado del cliente? localStorage en JavaScript es una solución potente para guardar información de manera persistente en tu aplicación web. En este artículo, te mostraremos cómo usar local Storage para mejorar la experiencia del usuario y la eficiencia de tus proyectos.

LocalStorage

¿Qué es localStorage?

local Storage es una propiedad de sólo lectura que te permite acceder al objeto local Storage en el navegador del usuario. Los datos almacenados en local Storage persisten incluso después de cerrar el navegador, lo que lo hace ideal para guardar información que necesitas conservar entre sesiones de usuario.

Diferencias entre localStorage y sessionStorage

Es importante diferenciar entre local Storage y sessionStorage. Aunque ambos son parte de la API de Web Storage, tienen comportamientos distintos:

  • localStorage: Los datos persisten indefinidamente hasta que se eliminen explícitamente. Esto significa que los datos estarán disponibles incluso después de cerrar y reabrir el navegador.
  • sessionStorage: Los datos se eliminan cuando la sesión del navegador finaliza, es decir, cuando se cierra la pestaña o ventana del navegador.

Características de localStorage

  • Persistencia: Los datos se mantienen almacenados hasta que se eliminen manualmente.
  • Capacidad: Aunque el límite puede variar entre navegadores, generalmente puedes almacenar hasta 5MB de datos.
  • Acceso entre pestañas: Los datos almacenados en local Storage están disponibles para todas las pestañas y ventanas que comparten el mismo origen.

Cómo usar localStorage

Sintaxis básica

Para acceder a local Storage, simplemente usa window.localStorage. Aquí tienes algunas operaciones básicas que puedes realizar:

  • Guardar datos

Para guardar un ítem en local Storage, usa setItem:

localStorage.setItem('miClave', 'miValor');
  • Leer datos

Para leer un ítem almacenado, usa getItem:

let valor = localStorage.getItem('miClave');
console.log(valor); // Output: miValor
  • Eliminar datos

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

Para eliminar un ítem específico, usa removeItem:

localStorage.removeItem('miClave');
  • Limpiar todo el almacenamiento

Para eliminar todos los ítems almacenados, usa clear:

localStorage.clear();

Ejemplos prácticos de uso de localStorage

Guardar preferencias del usuario

Una de las aplicaciones más comunes de local Storage es guardar las preferencias del usuario, como el tema de la página (oscuro o claro).

// Guardar la preferencia del tema
localStorage.setItem('tema', 'oscuro');

// Leer la preferencia del tema
let tema = localStorage.getItem('tema');
if (tema === 'oscuro') {
    document.body.classList.add('oscuro');
}

Guardar datos de formularios

Puedes usar local Storage para guardar los datos de un formulario, permitiendo que el usuario continúe donde lo dejó en caso de que cierre accidentalmente la pestaña.

// Guardar los datos del formulario
document.getElementById('miFormulario').addEventListener('input', function() {
    let datosFormulario = {
        nombre: document.getElementById('nombre').value,
        email: document.getElementById('email').value
    };
    localStorage.setItem('datosFormulario', JSON.stringify(datosFormulario));
});

// Recuperar los datos del formulario
window.addEventListener('load', function() {
    let datosGuardados = localStorage.getItem('datosFormulario');
    if (datosGuardados) {
        let datos = JSON.parse(datosGuardados);
        document.getElementById('nombre').value = datos.nombre;
        document.getElementById('email').value = datos.email;
    }
});

Beneficios de usar localStorage

  • Mejora la experiencia del usuario: Al permitir que los datos persistan entre sesiones, local Storage puede mejorar significativamente la experiencia del usuario. Por ejemplo, los usuarios no tienen que reingresar sus preferencias o datos cada vez que visitan tu sitio web.
  • Eficiencia y rendimiento: Guardar datos localmente reduce la necesidad de realizar solicitudes repetidas al servidor, lo que puede mejorar el rendimiento de la aplicación y reducir la carga en el servidor.
  • Facilidad de uso: La API de local Storage es muy sencilla y fácil de usar, lo que la hace accesible incluso para desarrolladores novatos.
  • Seguridad: Aunque los datos en local Storage están accesibles solo desde el mismo origen, es importante recordar que no deben almacenarse datos sensibles sin la debida encriptación, ya que local Storage no ofrece una seguridad intrínseca contra el acceso malintencionado del lado del cliente.

Consideraciones y mejores prácticas

  • Limite de almacenamiento: Ten en cuenta que local Storage tiene un límite de almacenamiento, generalmente de 5MB. Es adecuado para almacenar datos relativamente pequeños, pero no es ideal para grandes cantidades de información.
  • Seguridad de los datos: No almacenes información sensible en local Storage, como contraseñas o datos personales, sin aplicar algún método de encriptación.
  • Manejo de errores: Siempre maneja posibles errores, como exceder el límite de almacenamiento, para asegurar que tu aplicación maneje estas situaciones de manera elegante.
try {
    localStorage.setItem('miClave', 'miValor');
} catch (e) {
    if (e.code === 22) {
        console.error('Límite de almacenamiento excedido');
    }
}

local Storage es una herramienta poderosa para cualquier desarrollador web que busque almacenar datos de manera persistente en el navegador del usuario. Su simplicidad y eficiencia la convierten en una opción ideal para una variedad de aplicaciones, desde guardar preferencias de usuario hasta almacenar datos de formularios. Si quieres aprender más sobre cómo utilizar local Storage y otras herramientas clave en el desarrollo web, ¡apúntate al Bootcamp en DevOps & Cloud computing de KeepCoding! Este programa intensivo te proporcionará las habilidades necesarias para sobresalir en la industria tecnológica, una de las más demandadas y mejor remuneradas del mundo.

Xoán Mallón

Senior DevOps Engineer en Zscaler & Coordinador del Bootcamp DevOps & Cloud Computing.

Posts más leídos

¡CONVOCATORIA ABIERTA!

DevOps & Cloud Computing

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado