¿Qué es IndexedDB y cuándo la usan las webs?

IndexedDB es un almacenamiento avanzado del navegador para datos grandes y estructurados. Aprende qué es, cómo funciona y cuándo la necesitan las webs.

Borrador

IndexedDB es el sistema de almacenamiento integrado en el navegador para datos grandes y estructurados. Aprende qué es, cómo funciona y cuándo la usan las webs en lugar del almacenamiento local o de sesión.

¿Alguna vez has usado una aplicación web que seguía funcionando aunque se cortara tu internet? ¿O una que se sentía tan rápida como una aplicación nativa instalada en tu móvil, con grandes cantidades de datos cargando al instante? Detrás de esas experiencias suele haber algo mucho más potente que las herramientas básicas de almacenamiento del navegador que hemos visto hasta ahora. Ese algo es IndexedDB.

IndexedDB es el tipo de almacenamiento del navegador más potente que existe, y está un nivel por encima de lo que fueron pensados para manejar el almacenamiento local y el almacenamiento de sesión. La mayoría de los dueños de webs de empresa nunca interactuarán con ella directamente, pero entenderla te da una imagen completa de lo que los navegadores pueden guardar.

¿Qué es IndexedDB?

IndexedDB es una base de datos de bajo nivel integrada en el navegador. A diferencia del almacenamiento local y del de sesión, que guardan simples pares clave-valor de texto, IndexedDB puede guardar datos estructurados: objetos, listas, archivos y datos binarios. Permite buscar, indexar y guardar muchos más datos que los otros tipos de almacenamiento del navegador.

El nombre da una pista de cómo funciona. Usa índices, que son como tablas de consulta, para encontrar rápido los registros guardados sin tener que revisarlo todo. Esto la hace práctica para guardar y recuperar grandes cantidades de información estructurada dentro del propio navegador.

¿En qué se diferencia IndexedDB de otros almacenamientos del navegador?

El almacenamiento local guarda valores de texto pequeños y los conserva indefinidamente. El almacenamiento de sesión hace lo mismo, pero solo durante la sesión de la pestaña actual. Los dos son sencillos y limitados. IndexedDB es fundamentalmente distinta en alcance y capacidad.

La capacidad de almacenamiento es una de las principales diferencias. Mientras el almacenamiento local suele tener un tope de 5 a 10 megabytes, IndexedDB puede guardar cientos de megabytes o más, según el navegador y el dispositivo. También guarda directamente estructuras de datos complejas, no solo texto plano. Y admite consultas, es decir, la web puede buscar y filtrar los registros guardados en lugar de solo recuperar un valor por su clave exacta.

¿Para qué usan las webs IndexedDB?

Funcionamiento sin conexión

Las aplicaciones web que necesitan funcionar sin conexión a internet usan IndexedDB para guardar datos en local, en el dispositivo. Una app de notas, una herramienta de gestión de proyectos o un cliente de correo pueden guardar registros en IndexedDB para que el visitante pueda seguir leyendo, creando y editando contenido aunque no tenga conexión. Los cambios se sincronizan con el servidor cuando se restablece la conexión.

Grandes conjuntos de datos en el navegador

Las aplicaciones que trabajan con muchos datos, como mapas, filtros complejos o catálogos de productos grandes, pueden usar IndexedDB para guardar esos datos en caché en local. Así la aplicación tiene que pedir datos al servidor con menos frecuencia y la experiencia es mucho más rápida para el usuario.

Almacenamiento de archivos

IndexedDB puede guardar archivos directamente en el navegador. Esto la hace útil para aplicaciones en las que los usuarios suben o generan contenido que debe estar accesible entre sesiones antes de enviarse al servidor.

¿La mayoría de las webs usan IndexedDB?

No. IndexedDB la usan las aplicaciones web complejas, no las webs de empresa habituales. Una web de marketing, una web de servicios, una tienda online y la mayoría de los sitios de contenido no la necesitan. Sus necesidades de almacenamiento quedan bien cubiertas con las cookies, el almacenamiento local y el de sesión.

En tu propia web, la plataforma sobre la que creas se encarga de todas las decisiones de almacenamiento. El creador de webs de WEMASY usa automáticamente el tipo de almacenamiento adecuado para cada función. Para ver lado a lado todos los tipos de almacenamiento del navegador y cómo encajan, lee tipos de almacenamiento del navegador.

Preguntas frecuentes

¿IndexedDB es una base de datos de verdad?

Es una base de datos en el sentido de que guarda datos estructurados, admite índices y permite consultas. Pero es muy distinta de una base de datos de servidor. Funciona por completo en el navegador, en el dispositivo del visitante, no en un servidor remoto. Está pensada para el almacenamiento en el lado del cliente, no para la gestión de datos compartidos entre varios usuarios que hacen las bases de datos de servidor. Con el creador de webs de WEMASY, puedes configurarlo directamente en tu web.

¿Cuántos datos puede guardar IndexedDB?

Mucho más que el almacenamiento local o el de sesión. La mayoría de los navegadores permiten que IndexedDB use una parte importante del espacio libre en disco, a menudo cientos de megabytes o más. El navegador puede pedir permiso al usuario si una web intenta guardar una cantidad muy grande. El límite exacto varía según el navegador y también puede depender del espacio libre que haya en el dispositivo.

¿Los datos de IndexedDB se conservan al cerrar el navegador?

Sí. Los datos de IndexedDB son persistentes por defecto, igual que el almacenamiento local. Se quedan en el navegador hasta que el usuario borra los datos de su navegador o hasta que la web los elimina. Esta persistencia es lo que hace que IndexedDB sirva para aplicaciones que funcionan sin conexión, donde los datos deben sobrevivir entre sesiones.

¿IndexedDB es segura?

IndexedDB está aislada por cada web, así que una web no puede acceder a los datos de otra. Pero, como otros tipos de almacenamiento del navegador, es accesible para los scripts que se ejecutan en la página. Los datos sensibles, como contraseñas, datos de pago e información personal, nunca deben guardarse en IndexedDB. Va bien para datos de aplicaciones y contenido grande, pero no debe usarse como sustituto de un almacenamiento seguro en el servidor.

¿Pueden los visitantes borrar sus datos de IndexedDB?

Sí. Al borrar los datos del navegador desde sus ajustes, se elimina IndexedDB junto con las cookies, el almacenamiento local y la caché. Los visitantes también pueden borrarla desde las herramientas para desarrolladores. Las aplicaciones que dependen de IndexedDB para datos importantes deben tenerlo en cuenta y sincronizar los datos con un servidor cuando haya conexión, de modo que los datos locales nunca sean la única copia.

¿Necesito saber de IndexedDB para crear una web?

No. IndexedDB es una herramienta para desarrolladores que crean aplicaciones web complejas. Como dueño de una web que usa una plataforma, nunca interactuarás con ella directamente. Tu creador de webs gestiona en segundo plano las decisiones de almacenamiento del navegador. Entender IndexedDB sirve para tener una imagen completa de cómo funcionan los navegadores, pero no tiene ninguna repercusión práctica en cómo llevas o gestionas tu web día a día.

Ponlo en práctica
en tu propia web.

Empieza gratis con WEMASY y crea tu web en pocos minutos.