-Tutorial Su come sviluppare un'applicazione per Google Chrome | HTML5


HTML5 offre un sacco di interessanti API per la programmazione di applicazioni web che risiedono in linea. È interessante notare che, così fa Google Chrome attraverso la sua API di cromo. In questo articolo vi mostrerò come creare un'applicazione in linea utilizzando l'API di Google Chrome HTML5 offline. Questo è diverso dal API Chrome per la creazione di applicazioni installabili, che può essere sia una piena applicazione soffiato o un'estensione di Google.

Per applicare in linea, alcune considerazioni sono necessarie. In primo luogo è necessario definire quali beni il ricorso deve essere disponibile non in linea per l'applicazione a funzionare normalmente. In secondo luogo, essa deve essere in grado di memorizzare i dati dell'applicazione quando non sono collegati, ma anche essere in grado di caricare i dati al server, se necessario, quando l'applicazione è di nuovo online, o almeno quando La sincronizzazione è necessario con un server. Infine, deve essere in grado di aggiornare l'applicazione dal server con tutte le nuove funzionalità o aggiornamenti.

Per dimostrare queste funzionalità, costruisco un semplice programma per archiviare i miei dati in locale e sincronizzazione con un server.

Per questo progetto, sto usando la versione di Eclipse Aptana, che comprende modelli per HTML5. Si tratta di un download gratuito dal sito web Aptana. Anche se, è possibile utilizzare HTML5 Boilerplate templates irlandese Paul, penso che sarebbe più facile per comprendere meglio l'applicazione HTML5 concetti costruttore da zero.

In Eclipse, creare un progetto di applicazione web utilizzando appropriate template Web (questo è un modello standard). Fare clic su Avanti e selezionare l'opzione "template HTML di base". Fare clic su Fine per creare il progetto, che includerà il file index.html originale.

Offline Manifesto

Per aggiungere funzionalità offline, è necessario definire un file manifesto per definire ciò che per il download di proprietà per consentire l'applicazione a funzionare come se fosse un server. Per definire un manifesto, modificare l'intestazione DOCTYPE HTML. Nel modello, il DOCTYPE è definito come:




Poi è necessario creare un file manifesto. Questo può essere tutto quello che vuoi, ma le migliori pratiche dettare che si deve avere l'estensione si verifica e si trova nella cartella principale di applicazioni web. È inoltre possibile memorizzare il file manifesto online al web server. Questo può essere un percorso relativo o un percorso assoluto. Per una completa applicazione deve essere dalla stessa applicazione di origine. La sintassi sarebbe qualcosa di simile:

http://yourserver.com/myapp.manifest

Tipo

Configura MIME

Il file manifesto deve avere il tipo MIME corretto, che è: text/cache-manifesto.
Per gestire questo, il file manifesto viene salvato con l'estensione manifesto e aggiungere la seguente direttiva nel file .htaccess nella server basato Apache:

AddType text/clear-cache manifest

Per IIS 6 o 7, è necessario definire il tipo di strumento inetmgr:

  • Definire il tipo MIME è sia valido per l'intero server o che è valido per voi directorie applicazione.
  • Per aggiungere un tipo MIME per una directory: Fare clic destro sulla directory in cui si desidera aggiungere il tipo MIME.
  • Selezionare Etichette di intestazione HTTP.
  • Fare clic sul pulsante Tipi di file in basso a destra.
  • Fare clic su Nuovo tipo e fornire il grado e il tipo di contenuto, come riportato in precedenza.
  • Per aggiungere un tipo MIME per un intero server; Fare clic sul server.
  • Fare clic sul pulsante Tipi di file e seguire le istruzioni di cui sopra.
  • Fare clic su Nuovo tipo e fornire il grado e il tipo di contenuto, come riportato in precedenza.



Se l'applicazione è originario di Google App Engine, il manifesto è definito come segue:

- Url: (.. * \ Manifest)/appdir /
static_files: appdir/\ 1
mime_type: text/cache-manifesto
up: appdir/(* \ manifesto ..)

Per questo esempio, sto nominando il file addressbook.manifest e in esso ho definire compiti (file) da memorizzare localmente. Questo è il contenuto del file:

contenuto del file MANIFEST

CACHE MANIFESTO # È possibile aggiungere commenti utilizzando questa sintassi. # Se l'applicazione sarà solo offline, o si sta costruendo una domanda di un dispositivo Android o un dispositivo iOS # invece di una applicazione nativa, allora si Donat necessariamente bisogno di includere il CACHE POSTER # intestazione. Tuttavia, se l'applicazione web si basa con funzionalità offline, come ad esempio Google # GMail, allora avete bisogno di includere le informazioni di intestazione CACHE: index.html styling.css logic.js # Elenco tutte le altre pagine, se necessario. Le loro strade si sono relative al file manifesto. # Tutti i file dopo il caricamento intestazione Cache AppCache non # Dal server. Tutti i nuovi file o modifiche al lato file server manifesteranno # Abilita il download e l'aggiornamento del server. RED: # Elenca tutti i file memorizzati nella cache arenât come qualsiasi script CGI o tipi di file di configurazione o altro # Script. RICADERCI: # Utilizzare questa sezione per identificare i file della applicazione deve usare come piano di failover. Tutte le pagine o immagini # Il file può essere caricato qui e se una qualsiasi delle pagine principali o altri file non vengono caricati. # Questo è un esempio, e non come parte della domanda main_logo.png failover_logo.png

È importante sottolineare che 5 MB di dati possono essere memorizzati online, quindi è importante mantenere queste limitazioni in mente quando si progetta un'applicazione.

Cache

Aggiorna



Come ho detto, se il file manifesto viene modificato, quindi applicando i nuovi file elencati nel manifesto viene scaricato, ma non necessariamente aggiornare gli altri file. Come parte della specifica HTML5 offline, l'API consente la memorizzazione nella cache di controllo programmatico. Questo comprende eventi e manipolare lo stato di una memoria cache dell'applicazione.

Per aggiungere logica di programmazione per il nostro caching applicazione, definire un file JavaScript, logic.js per la nostra applicazione. Nel file per creare una funzione AppInit () che viene chiamato quando l'applicazione viene caricata:

Index.html

Semplice rubrica Semplice OAB App

logic.js

Logic.js codice / ** * Aggiornamento Cache * / Funzione AppInit () { var = AppCache window.applicationCache; var db = null; // Richiesta di un aggiornamento della cache appCache.update (); switch (appCache.status) { Se appCache.UNCACHED: // 0 ritorno 'no cache'; break; Se appCache.IDLE: // 1 ritorno 'IDLE'; break; Se appCache.CHECKING: // 2 Ritorno 'Control'; break; Se appCache.DOWNLOADING: // 3 ritorno 'Download'; break; Se appCache.UPDATEREADY: // 4 torna 'UPDATEREADY'; break; Se appCache.OBSOLETE: // 5 indietro "obsoleti"; break; predefinito: torna 'CACHE STATO Uknown'; break; }; // Se l'aggiornamento è riuscito, modificare la cache per il nuovo. se (== appCache.status window.applicationCache.UPDATEREADY) { appCache.swapCache (); if (conferma ('Una nuova versione della rubrica è disponibile. inserisco?')) { window.location.reload (); launchDb (); } } Else { // Manifesto non è cambiata. } } }

Innanzitutto definiamo una variabile e impostiamo a AppCache window.applicationCache. Successivo cercare di aggiornare la cache chiamando il metodo di aggiornamento. I diversi eventi che sono disponibili sono definiti. Se l'aggiornamento ha avuto successo e lo stato di evento è mezzo UPDATEREADY download il nuovo file ha avuto successo, allora chiamiamo il metodo realtà swapCache per aggiornare la cache.

Offline bagagli


Ora che abbiamo la nostra pronta, beh, ad essere l'applicazione in linea in linea, avremo bisogno di uno spazio per riporre i nostri dati alla nostra sezione.

Per il nostro esempio, io uso il database Web SQL. Per usarlo, si crea un database se e aprirlo. Quindi creare una tabella, di nuovo se e, infine, fornire operazioni CRUD.

var db = null; launchDb () function { db = OpenDatabase ("addrbook ',' 1.0 ',' database di rubrica non in linea ', 5 * 1024 * 1024, createInitTable (db) { db.transaction (function (tx) { tx.executeSql ('CREATE TABLE IF NOT EXISTS indirizzi (id, nome, e-mail)'); } ); }); } // Ho aggiunto questo codice per AppInit dall'alto e dovrebbe essere simile a questo: Funzione AppInit () { var db = null; Ã ¢ Â | // Se l'aggiornamento è riuscito, modificare la cache per il nuovo. se (== appCache.status window.applicationCache.UPDATEREADY) { appCache.swapCache (); // Init o aprire il database launchDb (); } }

Non c'è alcun dubbio la migliore forma di questo codice, ma ai fini del nostro esempio sarà sufficiente. Una volta che l'aggiornamento della cache è completo, il database e la tabella tenterà di creare e/o aprire il tavolo.

Sarà anche necessario chiudere il nostro codice CRUD; principalmente un INSERT e query SELECT.

Funzione GetEntries (db) { db.transaction ( Function (tx) { tx.executeSql ( 'SELECT * FROM dove Date = indirizzo? ORDER BY nome ', funzione (tx, risultato) { for (var i = 0; i Ora che abbiamo le nostre operazioni di back-end e CRUD in luogo, tutto ciò che rimane è quello di costruire l'interfaccia utente. Per questa parte, userò migliori funzionalità HTML5, e cioè: Form 2.0 e nuove funzionalità come parte delle API Web Form: segnaposto testo e autofocus

L'attributo placeholder aggiunge una richiesta o suggerimento per il campo, mentre la messa a fuoco automatica posizionare il cursore in un campo designato.

Ma torniamo alla nostra pagina index.html, inserire dopo l'elemento h1 un elemento di forma con due campi: nome e indirizzo email.

Così il gioco è fatto. In questo articolo ti lavi solo caratteristiche e stoccaggio HTML5 capacità off-line, così come alcune delle nuove caratteristiche di forma.

(0)
(0)

Commenti - 0

Non ci sono commenti

Aggiungi un commento

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caratteri rimanenti: 3000
captcha