Intenta navegar con Firefox • Tiene algo de señal pero cuando entra a un sitio solo ve la barra de carga y una página en blanco • Cree que las página son lentas porque se queda cargando. Si ve la página advirtiendo que está offline culpa a Movistar
tienen que poder: • Interpretar un manifest.json • Instanciar un service worker • https -> (letsencrypt FTW!) Si el chequeo nos dice que no se puede simplemente no enriquecemos nuestros sitios
Enhancement: Si podemos usar esta tecnología la aprovechamos, sino seguimos con la nuestra if ('serviceWorker' in navigator) { navigator.serviceWorker.register('/sw.js') }
que tiene acceso a ciertas APIs que nuestros scripts comunes no. De hecho pueden seguir corriendo cuando nos vamos del sitio. El flujo está muy basado en el uso de Promises. Si todavía no sabes que sos, es buen momento para aprenderlo.
la CACHE API que nos permite crear caches para almacenar recursos. • También se emite un evento en el service worker por cada request en nuestro sitio (navegación, js, css, xhr, etc...). • Podemos frenar un pedido a la red y devolver información cacheada, mockeada o ir incluso seguir a la red y cachear la respuesta para el futuro.
se cachea (header, footer, sidebar) y se “rellena” con la información que se modifica • Es muy simple hacer una aplicación que cargue instantáneamente (del cache) y se completa con datos que pueden venir de la red o de otro cache • Es muy importante contar con `blank states` (siempre lo es pero especialmente en este caso) • Este no es un estándar sino una recomendación de gugel
un nombre cuando la app tiene una conexión estable • Intentamos sincronizar la información que produjo el usuario “offline” con el estado general de nuestros servidores y le hacemos saber al sw si la sync se hizo correctamente • Si no fue correcta la sincronización se intentará nuevamente más tarde • Otra vez, progressive enhancement. Tenemos que chequear si está disponible y actuar en consecuencia. Si no seguimos con la nuestra • Límites en el proceso de sync • Pensar nuestro flujo de datos en términos de sync puede ser más díficil al comienzo pero es útil también para otros esquemas como real-time y múltiples clientes
inspired by Apache CouchDB that is designed to run well within the browser. PouchDB was created to help web developers build applications that work as well offline as they do online.”
que pedirle permiso al usuario • Involucrados con los browser vendors (por ejemplo chrome requiere registrar la app) • Funcionan como las push notifications mobile nativas