Durante estos últimos meses se están ultimando los detalles de lo que será el nuevo Firefox 3 versión final. Entre las novedades se encuentra el desarrollo de nuevas funciones en el API que permitirán a las aplicaciones web que lo deseen poder funcionar offline (sin conexión a Internet). Un ejemplo especialmente útil y práctico sería por ejemplo el poder indicar a nuestra cuenta GMail que en los próximos minutos vamos a coger un avión y que por tanto vamos a estar sin conexión durante unas cuantas horas. Sentados, con el portátil y sin conexión. ¿Podríamos pulsar algún botoncito para decirle a GMail, además, que sea tan amable de descargar automáticamente los nuevos mensajes de tal forma que estén disponibles offline? Y ya puestos, ¿podríamos leer y responder esos mensajes, borrarloso etiquetarlos y cuando volviéramos a tener conexión, sincronizar el estado? Sí a todo. Con el nuevo API de trabajo offline de Firefox 3.
Ya existen algunas pruebas de concepto. Incluso Zimbra, el gestor de trabajo en grupo (correo electrónico, agenda, documentos) que está haciendo eclipsar a Exchange, ya dispone de un cliente offline aprovechando esa tecnología.
Las características Firefox usadas para conseguir el soporte de aplicaciones offline son:
* Una implementación de la especificación WHATWG : DOM Storage (para almacenar en local emails e información de carpetas)
* Offline Cache. Un parche disponible para Firefox que añade una zona de cache específicamente para dar soporte a aplicaciones web que quieran poder trabajar offline (de tal forma que les permita almacenar datos como imágenes, páginas HTML, etc). Los elementos son cargados en la cache usando una etiqueta especial:
* Protocolo para dar soporte a ficheros JAR . Firefox acepta URLs que hagan uso del protocolo JAR. Esto permite guardar múltiples objetos en un único fichero .jar y que el navegador pueda referenciar de forma inequívoca aquel recurso que necesite en cada momento.
Por ejemplo, para referenciar el fichero /core/AjxCore.js en el fichero ajax.jar, la URL sería: jar:/zimbra/js/ajax.jar!/core/AjxCore.js
* Eventos Offline. El navegador dispondrá de eventos «offline» y «online» que serán lanzados cuando el usuario elija trabajar sin conexión a través del menú o cuando se pierda la conexión a Internet.
La especificación de HTML 5 incluye un apartado sobre aplicaciones web offline:
http://www.whatwg.org/specs/web-apps/current-work/#offline