Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
Guida ad HTML5: applicazioni web offline (3/5)
Scritto da Pellegrino Principe il 06-12-2010 ore 10:50
Intel Cluster Studio XE
Dal punto di vista delle API utilizzabili con JavaScript la specifica mette a disposizione l’oggetto applicationCache, proprietà dell’oggetto window, che consente di gestire la cache locale attraverso le seguenti proprietà, funzioni ed eventi.

Per le proprietà abbiamo status, a sola lettura e di tipo unsigned short, che ritorna lo stato della cache tra:
  • UNCACHED (0), indicante la non associatività di una pagina alla cache;
  • IDLE (1), indicante l’associatività di una pagina alla cache, già aggiornata;
  • CHECKING (2), indicante una verifica di aggiornamento del file manifesto di una pagina già associata a una cache;
  • DOWNLOADING (3), indicante un download di risorse aggiornate di una pagina già associata a una cache;
  • UPDATEREADY (4), indicante la fine del downloading delle nuove risorse e la possibilità di utilizzarle per una pagina già associata a una cache;
  • OBSOLETE (5), indicante che per una pagina già associata a una cache il file di manifesto è mancante.

Tra le funzioni, void update() permette di inviare una richiesta di aggiornamento della cache, che consentirà una verifica del file di manifesto per rilevare se occorre scaricare nuovi file di risorse; void swapCache(), permette di caricare la nuova cache e rimuovere la vecchia se tale cache è cambiata in virtù del download di risorse aggiornate. Tale funzione deve essere invocata solo se lo status della cache è in modalità UPDATEREADY, altrimenti viene generato un errore.

Per quanto concerne gli eventi, invece, onchecking viene generato quando il browser verifica se è presente una versione aggiornata del file manifesto, oppure la prima volta che quest’ultimo è scaricato; onerror è generato a causa di un errore occorso per l’impossibilità di trovare il file manifesto, oppure qualche file di risorsa indicato; onnoupdate si genera quando non è occorso alcun cambiamento del file di manifesto; onobsolete è generato a causa di un file di manifesto mancante.

Gli eventi legati allo scaricamento sono: ondownloading, generato quando il browser per la prima volta sta iniziando il download delle risorse oppure durante una fase di aggiornamento; onprogress, generato durante la fase di scaricamento dei file di risorse; onupdateready, generato al termine della fase del downloading delle risorse aggiornate; oncached, generato al termine dello scaricamento delle risorse e dopo che le stesse sono state immagazzinate nella cache.

Abbiamo, infine, la possibilità di utilizzare gli eventi online e offline dell’oggetto window, che sono generati se il browser è posto rispettivamente in modalità connessa o disconnessa, e la proprietà onLine dell’oggetto navigator, che consente di sapere se il browser è online.

Mettiamo, ora, in pratica quanto sin qui illustrato mostrando un programma, che creerà un album di immagini utilizzabile anche quando non si è online. Esso avrà il seguente file HTML, di cui mostriamo i punti più significativi (offline.html):
  1. <!DOCTYPE html>
  2. <html lang="it" manifest="offline.manifest">
  3. <body>
  4.     <div id="img_placeholder">
  5.     </div>
  6.     <div id="navigator">
  7.     <div id="left" title="go prev"></div>
  8.     <div id="right" title="go next"></div>
  9.     </div>
  10.     <div id="status" title="browser connection mode"></div>
  11.     <div id="cache_status" title="status area for application cache"></div>
  12.     <div id="update" title="update cache..."></div>
  13. </body>
Oltre all’indicazione del file manifesto offline.manifest, vi sono i seguenti div: quello centrale img_placeholder, che visualizzerà l’immagine corrente; il div navigator per la navigazione avanti/indietro delle immagini; il div cache_status, che visualizzerà tutti gli stati in cui si potrà trovare la cache; il div update con cui si potrà invocare programmaticamente la funzione update; il div status, che visualizzerà un’immagine indicante lo stato online/offline del browser.
Precedente: LIBJACKET, una libreria C/C++ per il GPGPU
Successiva: Un progetto per un DNS basato su P2P (1/2)
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.289 secondi.