Google Gears: web 2.0 goes offline!
Ajax Giugno 18th, 2007Ho perso la connessione! Non ho più banda!
Questi sono i problemi più comuni che ci affliggono e ci gettano nella disperazione, abituati come siamo ad essere online 24 ore su 24. Senza connettività, niente più siti da navigare, news da leggere, feed da consultare… oppure no?
La nuova parola d’ordine del web 2.0 è OFFLINE, ovvero la possibilità che la nostra applicazione web, se ben pensata, possa funzionare senza intoppi anche in questa modalità e appena ripristinata la connessione, tutto il nostro lavoro effettuato in locale venga trasferito online. Questa magia è possibile grazie a Google Gears!
Vediamo adesso nel dettaglio come funziona la nuova invenzione dei ragazzi di Mountain View.
Il primo passo consiste nello scaricare il runtime di Gears, in quanto tutto si basa su avere un engine installato sulla propria macchina. E’ disponibile per Windows, Mac e Linux e una volta scaricato (dopo aver accettato i termini di licenza) si manda in esecuzione l’installer che prosegue ad effettuare il download dei vari moduli e li installa sulla vostra macchina.
A questo punto siamo Gears enabled e possiamo verificarlo sulla home page del progetto, ricaricando la pagina dovrà apparire il messaggio di avvenuta installazione.
Adesso ogni volta che accederemo ad una pagina che sfrutta l’engine di Gears, si aprirà un pop up che ci chiede l’autorizzazione ad utilizzare il runtime da parte del sito in questione, eventualmente salvando questa impostazione per non dover sempre confermare il pop up.
Per prima cosa una applicazione Gears, verifica la presenza del runtime, ed eventualmente propone la sua installazione nel computer dell’utente, per fare ciò basta includere il file gear_init.js e il seguente breve script:
Verificata la presenza del runtime, vediamo su quali oggetti fare affidamento per poter rendere funzionante la nostra applicazione anche offline:
- LocalServer
- Database
- WorkerPool
LocalServer si occupa di mettere in cache le pagine da servire in modo che siano disponibili anche in modalità offline, per far ciò mette a disposizione 2 differenti tipi di risorse, ResourceStore e ManagedResourceStore. Il primo è utile per catturare un singolo elemento mentre il secondo è usato preferibilmente per catturare un insieme di pagine (di norma l’elenco di queste pagine è definito in un file manifest che accompagna la nostra applicazione). Il ManagedResourceStore prevede anche un meccanismo di aggiornamento automatico, se noi rilasciamo una nuova versione dell’applicativo, basta modificare il numero di versione del file manifest e Gears aggiornerà la nostra copia locale. Se proprio dovesse andare qualcosa storto, possiamo sempre dare il comando diretto usando la chiamata checkForUpdate().
L’oggetto Database ci fornisce gli strumenti per implementare la persistenza dei dati su base locale, usando la comune sintassi SQL, in quanto il motore che Google ha inglobato altri non è che SQLite. Il risultato delle nostre query non è altro che un recordset e quindi possiamo iterare al suo interno come facciamo con i più comuni linguaggi di programmazione:
while (rs.isValidRow()) {
console.log(rs.fieldName(0) + ” == ” + rs.field(0));
rs.next();
}
rs.close();
L’ultimo oggetto, WorkerPool, è destinato alle operazioni computazionalmente onerose e che quindi necessitano di essere eseguite in background per mantenere l’interfaccia utente responsiva. E’ possibile definire più processi appartenenti al pool, e tra di essi possono comunicare tramite l’utilizzo della primitiva sendMessage(). Nella stessa pagina possono convivere più pool senza inetrferire tra di loro.
Di seguito ecco alcuni progetti basati su Google Gears:
- Remember the milk (una todo list in stile web 2.0).
- GearPad (un web notepad) rilasciato da Google stessa.
- DojoOffline (la versione offline del famoso toolkit Ajax).
Come di consueto, terminiamo la nostra recensione proponendo alcuni libri per approfondire i temi trattati:
…and now you’re a bit more conscious!









Recent Comments