Es importante elegir los mecanismos de almacenamiento adecuados, tanto para el almacenamiento en el dispositivo local como para el almacenamiento en el servidor basado en la nube. Un buen motor de almacenamiento se asegura de que tu información se guarde de forma confiable, reduzca el ancho de banda y mejore la capacidad de respuesta. La estrategia de almacenamiento en caché adecuada es un elemento básico para habilitar experiencias de la Web móvil sin conexión.
En este artículo, se proporciona una breve base para evaluar las APIs y los servicios de almacenamiento. Luego, te proporcionaremos una tabla de comparación y algunas instrucciones generales. En un futuro cercano, planeamos agregar recursos para comprender con mayor profundidad algunos temas de almacenamiento.
Taxonomía de almacenamiento
Comencemos por comprender algunas de las dimensiones con las que podemos analizar el almacenamiento de datos para apps web. Más adelante, usaremos este framework para enumerar y evaluar las muchas opciones de almacenamiento disponibles para los desarrolladores web.
Modelo de datos
El modelo para almacenar unidades de datos determina cómo se organizan los datos de forma interna, lo que afecta la facilidad de uso, el costo y el rendimiento de las solicitudes de almacenamiento y recuperación.
Estructurados: Los datos almacenados en tablas con campos predefinidos, como es habitual en los sistemas de administración de bases de datos basados en SQL, se prestan bien a consultas flexibles y dinámicas, en las que es posible que no se conozca de antemano la gama completa de tipos de consultas. Un ejemplo destacado de un almacén de datos estructurados en el navegador es IndexedDB.
Clave-valor: Los almacenes de datos clave-valor y las bases de datos NoSQL relacionadas ofrecen la posibilidad de almacenar y recuperar datos no estructurados indexados por una clave única. Los almacenes de datos de par clave-valor son como las tablas hash, ya que permiten el acceso en tiempo constante a datos opacos indexados. Algunos ejemplos destacados de almacenes de datos de par clave-valor son la API de Cache en el navegador y Apache Cassandra en el servidor.
Flujo de bytes: Este modelo simple almacena datos como una cadena opaca de bytes de longitud variable, lo que deja cualquier forma de organización interna a la capa de aplicación. Este modelo es particularmente bueno para sistemas de archivos y otros fragmentos de datos organizados de forma jerárquica. Algunos ejemplos destacados de almacenes de datos de flujo de bytes son los sistemas de archivos y los servicios de almacenamiento en la nube.
Persistencia
Los métodos de almacenamiento para apps web se pueden analizar según el alcance sobre el que se hacen persistentes los datos.
Persistencia de la sesión: Los datos de esta categoría se retienen solo mientras una sola sesión web o pestaña del navegador permanece activa. Un ejemplo de un mecanismo de almacenamiento con persistencia de sesión es la API de Session Storage.
Persistencia del dispositivo: Los datos de esta categoría se retienen en todas las sesiones y pestañas o ventanas del navegador, dentro de un dispositivo en particular. Un ejemplo de un mecanismo de almacenamiento con persistencia del dispositivo es la API de Cache.
Persistencia global: Los datos de esta categoría se conservan en todas las sesiones y los dispositivos. Por lo tanto, es la forma más sólida de persistencia de datos. Un ejemplo de un mecanismo de almacenamiento con persistencia global es Google Cloud Storage.
Navegadores compatibles
Los desarrolladores deben elegir una API que se adapte mejor a su dominio de problemas. Sin embargo, también deben tener en cuenta que las APIs estandarizadas y bien establecidas son preferibles a las interfaces personalizadas o propietarias, ya que suelen tener una vida útil más larga y una compatibilidad más amplia. También pueden disfrutar de una base de conocimiento más amplia y un ecosistema de desarrolladores más rico.
Transacciones
A menudo, es importante que una colección de operaciones de almacenamiento relacionadas se complete o falle de forma atómica. Tradicionalmente, los sistemas de administración de bases de datos admiten esta función con el modelo de transacción, en el que las actualizaciones relacionadas se pueden agrupar en unidades arbitrarias. Si bien no siempre es necesario, esta es una función conveniente y, a veces, esencial en algunos dominios de problemas.
Síncrono/asíncrono
Algunas APIs de almacenamiento son síncronas en el sentido de que las solicitudes de almacenamiento o recuperación bloquean el subproceso activo hasta que se completa la solicitud. Esto es particularmente oneroso en los navegadores web, donde la solicitud de almacenamiento comparte el subproceso principal con la IU. Por motivos de eficiencia y rendimiento, se prefieren las APIs de almacenamiento asíncrono.
Depuración del almacenamiento en las Herramientas para desarrolladores de Chrome
Consulta la siguiente documentación para obtener más información sobre el uso de las Herramientas para desarrolladores de Chrome para inspeccionar y depurar la API de almacenamiento web que elijas. Las APIs que no se mencionan aquí no son compatibles con DevTools o no son aplicables.
Si usas varias APIs de almacenamiento, consulta la función Clear Storage de DevTools. Esta función te permite borrar varias tiendas con un solo clic. Consulta Cómo borrar los trabajadores del servicio, el almacenamiento, las bases de datos y las cachés para obtener más información.
Próximos pasos…
Ahora que revisamos algunas de las formas relevantes de pensar en los mecanismos de almacenamiento y comparamos las APIs y los servicios más populares disponibles en la actualidad, pronto agregaremos más contenido para profundizar en uno o más temas de interés: