Domanda

Devo essere in grado di eseguire moduli HTML offline. Voglio dire che devono funzionare senza connessione diretta al web server.

In un'applicazione che ho scritto più di 5 anni fa l'ho fatto implementando un gestore di protocollo personalizzato - quando un modulo avviato dall'utente inviava la richiesta HTTP risultante veniva registrata localmente. In un secondo momento, quando diventa disponibile una connessione al server, un programma di sincronizzazione esegue il ciclo attraverso le richieste raccolte e le invia al server raccoglie le risposte e le salva nuovamente localmente per un uso successivo.

Quello era allora. Ora un altro cliente mi ha avvicinato con una richiesta molto simile. Quale tecnologia pensate che dovrei usare oggi?

Il supporto per HTML5 è ancora molto limitato. Google ingranaggi? O dovrei tornare indietro e continuare a utilizzare il gestore di protocollo e il sincronizzatore personalizzato?

È stato utile?

Soluzione

Direi che vai su HTML5. Non tutti i browser lo supportano; ma tutto lo farà. Nel frattempo, penso che sia meglio dire "per ottenere funzionalità offline provare questo o tale browser", invece di "scaricare questo enorme plug-in con molti avvisi spaventosi".

Anche una semplice demografia: HTML5 è in cosa, il 5% di tutti i browser? 10%? ancora molto più dello 0% degli utenti con Gears già installato.

È un vero peccato, grazie mille Google per aver spinto la busta con Gears; ma in natura l'unico plugin generalmente accettato è Flash. Fortunatamente, HTML5 è già quasi arrivato, con quasi le stesse funzionalità.

Altri suggerimenti

Google Gears è un ottimo candidato. Ad esempio, Google ha recentemente annunciato che gli utenti sarebbero in grado di allegare file alle e-mail mentre sono "offline". Un altro metodo potrebbe essere quello di memorizzare i dati del modulo pubblicato in un cookie e quando l'utente è in grado di tornare online, il server raccoglie i cookie e i dati con esso.

Corre voce che Google Gears non sia più in fase di sviluppo. Quando guardi le funzionalità degli ingranaggi e il tracker dei problemi in http://code.google.com/p/gears/issues/list?can=2&q=&sort=version&colspec=Version%20Milestone%20Owner%20ID % 20Summary% 20Component per il nuovo sviluppo di Gears, ci sono solo 3 elementi che verranno risolti nella versione 0.6. Inoltre, secondo questo articolo di Wikipedia ( http://en.wikipedia.org/wiki/Google_Gears), sembra che Google non stia facendo alcuno sviluppo, e neanche il progetto open source ha molto vapore. Tratto dall'articolo è questo:

" Alla fine di novembre 2009, numerose fonti di notizie online hanno riferito che Google eseguirà la migrazione per utilizzare HTML 5 anziché Gears in futuro. Un portavoce di Google in seguito ha chiarito che Google continuerà comunque a supportare Gears per non rompere i siti che lo utilizzano. & Quot;

In altre parole, Gears è stato deprecato. Usa invece HTML 5.

Dojo.Storage/ Dojo Offline , ha un flash bridge che ti consentirà di archiviare i dati utilizzando archivio dati di flash. Il limite è impostato dall'utente, ma inizia a 5 Mb. Il componente libreria è un'astrazione e supporta anche HTML 5, cookie e ingranaggi.

Gli ingranaggi Plus ti permetteranno di archiviare BLOB binari, se la memoria serve.

Google Gears è morto: http://gearsblog.blogspot.com/2011 /03/stopping-gears.html

La tua scommessa migliore è probabilmente una combinazione degli standard HTML5 per applicationCache e localStorage.

Tuttavia, applicationCache dovrebbe essere usato con parsimonia - è un vero dolore. Questo articolo spiega perché, oltre a fornire alcuni suggerimenti su come utilizzare un approccio ibrido di applicationCache e localStorage per la VISUALIZZAZIONE offline (non per l'invio) di pagine:

http://www.alistapart.com/articles/application -cache-is-a-coglione /

Ecco un articolo che contiene un esempio di acquisizione dei dati dei moduli in localStorage, ma sfortunatamente non fornisce un esempio di invio effettivo dei dati offline:

http: //miniapps.co.uk/blog/post/using-html5-localstorage-as-a-fallback-for-offline-form-submission

Inoltre, fai attenzione a window.navigator.onLine per rilevare lo stato offline: non è implementato in modo coerente su tutti i browser e probabilmente è meglio che l'utente ti dica esplicitamente se sono offline o meno.

- Ciad

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top