Blog de Gonzalo

BASE DE DATOS EN JAVASCRIPT

Hace un tiempo hablé de la posibilidad de cachear contenido en javascript y el uso de sesiones en javascript.
Hoy quiero hablar de IndexedDB que es un sistema de base de datos transaccionales, que nos permite almacenar información estructurada dentro del navegador. IndexedDB permite almacenar grandes cantidades de datos, cada registro está compuesto de una clave y objeto. Una característica que lo hace perfecto para se usado con Progressive Web Apps es que es Asíncrono, por lo que el sistema de acceso a la información mediante Javascript no es bloqueante para el navegador.
IndexedDB permite el uso de índices con el fin de mejorar el rendimiento.
Para llevar a cabo operaciones sobre la base de datos es necesario el uso de transacciones. La base de datos está asociada al dominio, por lo que pueden existir varias bases de datos con el mismo nombre siempre y cuando estén en un dominio distinto. Usar IndexedDB no es algo complejo aunque puede llegar a ser engorroso por su diseño y sus implementaciones. Por ese motivo existen varias librerías que ayudar a manejar las transacciones fácilmente.
Entre las librerías más conocidas y apropiadas para facilitar el trabajo con la base de datos IndexedDB dos sugerencias:

  • LocalForage: cuyo uso es bastante sencillo, y muy parecido al localStorage.
  • Dexie.js: mi preferida, pues permite utilizar fácilmente promesas y está muy bien documentada.

Compartir en twitter