¿Alguien sabe de algún recurso disponible para Meteor que pueda ayudar a cargar activos grandes (20 MB-80 MB) para uso (principalmente) fuera de línea?
Mi desarrollo actual está completamente en Vanilla JS (en el lado del cliente) y estoy considerando construir una versión de Meteor/React para el rendimiento y la práctica. Actualmente, mi aplicación funciona tanto en línea como fuera de línea y sincroniza datos cuando hay una conexión con una base de datos MongoDB. Inicialmente, también carga dinámicamente grandes activos en IndexedDB para su uso sin conexión (en realidad, la capa de vista solo se comunica con la base de datos local). Todo el sistema usa WebSockets para transportar todos los datos además de la carga inicial. El transporte de los activos grandes se carga constantemente a través del zócalo, por lo que lleva un tiempo, pero esos datos se pueden descargar, pausar y reiniciar esencialmente.
¿Hay algo por ahí que ya maneje algo como esto? ¿O hay una mejor manera de descargar archivos de datos de gran tamaño e instalarlos en una base de datos local? Podría ser un archivo JSON, pero mi temor de hacer algo así podría bloquear el navegador del usuario al intentar cargar todos esos datos a la vez. Cualquier dirección o consejo sería muy apreciado. Gracias.
Por lo que puedo entender, está tratando de crear una aplicación web que pueda funcionar sin conexión. En ese caso, la aplicación web progresiva (PWA) es lo que debe buscar.
De hecho, PWA es un estándar, trabajar sin conexión es una de las características principales. En la práctica, PWA utiliza Service Worker para almacenar en caché sus activos estáticos en el navegador y usarlos para cargas futuras. Pero ten en cuenta que esta tecnología aún es nueva y aún no ha sido un estándar para el desarrollo web, por lo que debes verificar si funciona en los navegadores de tus usuarios.
Hablando de Meteor, ya hay algunos intentos de hacer que las aplicaciones de Meteor funcionen sin conexión. Los dos mejores que conozco son meteor-service-worker y GroundDB . El primero ayuda a almacenar en caché la fuente de la aplicación en el navegador y el último ayuda a que su base de datos viva en el lado del cliente. Todos son buenos paquetes, sin embargo, creo que aún no están maduros, así que piénsalo dos veces antes de usarlos.