tutto nasce da una mail di umberto che mi segnala questo articolo in cui si parla del supporto alla modalità offline nelle applicazioni Ajax che sarà offerto da Firefox 3.
Poichè l’argomento mi interessa ho fatto una veloce ricerca, perchè ricordavo di aver già visto tempo fa dei progetti che puntavano a sviluppare applicazioni Ajax con il supporto alla modalità offline.
Innanzitutto va precisato che Firefox 3 non permetterà di usare qualunque applicazione basata su Ajax in modalità offline (nell’articolo si cita gmail per esempio). Le applicazioni, come correttamente segnalato in un update dello stesso post, dovranno essere modificato per offrire questo supporto. Questo commento di Robert O’Callahan sullo stesso post credo chiarisca molto bene il concetto:
Yes, Web apps need to be reengineered for this, and no, no-one (including Google) has announced they will do so — although we hope they will! Our offline app support builds on a few APIs that are already at least quasi-standards — WHATWG client-side storage, jar: URLs, and WHATWG online/offline sensing. The only really new API is an API for storing application pages in the “offline cache”, and that’s just a new “rel” keyword for the element. So it should be pretty easy to add this to any browser.
Tra l’altro sul suo blog, due giorni fa, ha inserito un esaustivo post sull’argomento.
Come dicevo all’inizio avevo già incontrato questa problematica navigando in rete. Zimbra ha presentato a novembre un’anteprima del proprio supporto alla modalità offline.
Anche dojo ha presentato un progetto con gli stessi obiettivi ma scegliendo una strada diversa per l’implementazione.
Entrambe prevedono la presenza di uno storage client side e di alcune estensioni quasi-standard in via di definizione da parte del WHATWG. Ciò che introduce Firefox è la possibilità di forzare il caching delle pagine dell’applicazione che consentiranno quindi di usarla offline. Le differenze fra le due soluzioni sono legate alla modalità con cui viene gestito lo storage locale. Zimbra utilizza Apache Derby come db locale e Lucene per l’indicizzazione. Dojo ha sviluppato una propria applicazione, Dojo Storage, che rende disponibile una serie di API javascript per effettuare lo storage di dati. L’implementazione può variare a seconda del contesto in modo trasparente per l’applicazione javascript. Dal sito di dojo al momento le versioni dello storage previste sono tre:
Right now the dojo.storage system includes three storage providers, a Flash Storage Provider that uses a hidden Flash applet; a WHAT WG Storage Provider that uses native client-side storage abilities in Firefox 2; and a File Storage Provider that uses the native file system if a web app is loaded from the local file system. Creating other kinds of storage providers is a great way for the community to contribute.
Quello delle applicazioni Ajax che possono lavorare offline è un tema molto interessante perchè apre la strada ad una serie di applicazioni che potrebbero abbandonare il pc per diventare servizi disponibili online cambiandone il paradigma d’uso e di distribuzione. Già oggi io uso abitualmente Gmail, GoogleCalendar e RememberTheMilk in luogo di applicazioni equivalenti da installare sul mio pc. Se potessi usarli anche offline il browser diventerebbe il nodo centrale di molte delle mie attività.
Un grazie a michele per le solite preziose informazioni sul tema.