PDA

View Full Version : Webapp che funzioni anche offline


mux85
04-02-2011, 10:07
Ciao a tutti, dovrei creare una applicazione che permetta di inviare dei dati da remoto a un server e vorrei farlo con una web application in modo da non dover installare nulla sulle macchina client (a parte il browser). Il problema è che il client deve poter caricare i dati anche se in quel momento è senza connessione, ovviamente non sul server ma in locale per poi inviare i dati più tardi quando la connessione torna a funzionare.
Si tratta di una cosa fattibile? Se si con quali tecnologie? Avete guide da consigliare al riguardo?
Grazie mille

tomminno
04-02-2011, 10:44
Adobe AIR, Google Gears, Silverlight

mux85
04-02-2011, 12:09
Adobe AIR, Google Gears, Silverlight

Visto che odio abbastanza flash penso che eviterò AIR.
Google gears in effetti da quanto ho capito sembra fatto apposta.
Silverlight non sapevo avesse questa funzionalità ma visto che tutto il resto della applicazione sarà probabilmente basato su piattaforma Microsoft approfondirò.
Quindi serve qualche plugin cmq? HTML 5 non ha qualcosa al riguardo? Considerate che posso tranquillamente stabilire come requisito per l'uso dell'applicazione un particolare browser se al momento la cosa non è supportata da tutti.

tomminno
04-02-2011, 12:59
Quindi serve qualche plugin cmq? HTML 5 non ha qualcosa al riguardo? Considerate che posso tranquillamente stabilire come requisito per l'uso dell'applicazione un particolare browser se al momento la cosa non è supportata da tutti.

Html 5 non è ancora una realtà consolidata. Se usarlo o meno dipende dal target. Se il progetto è rivolto solo all'interno di un'azienda in cui la configurazione dei computer è controllabile puoi anche imporre il vincolo (molto stringente dato che attualmente il miglior supporto, per quello che interessa a te, è dei browser di derivazione Webkit). Certamente non lo puoi fare se l'accesso al sito è pubblico.
Secondo me, ad oggi, non si può prescindere dall'utilizzo di un plugin.

mux85
04-02-2011, 13:44
Gli utenti sono interni a una azienda e posso tranquillamente dirgli quale browser usare. Cmq se con i suddetti plugin riesco a ottenere lo stesso risultato tanto meglio. Tendevo a evitare l'installazione di un plugin per rendere la cosa un po' meno complicata per i clienti. Non avrò accesso diretto a tutti i terminali. Cmq spiegare come installare un plugin non dovrebbe essere troppo difficile. Speriamo bene

nico159
04-02-2011, 14:15
http://diveintohtml5.org/storage.html funziona anche in IE8 e sopratutto anche iPhone ed Android ;)

mux85
04-02-2011, 15:34
http://diveintohtml5.org/storage.html funziona anche in IE8 e sopratutto anche iPhone ed Android ;)

Molto interessante grazie. Il fatto di funzionare su smartphone non mi interessa più di tanto visto che si parla di terminali di negozi ma non è male per sviluppi futuri cmq.

PS guardando bene la pagina che hai linkato non risponde esattamente a quello che ho chiesto, in parte si perchè in effetti mi serve la possibilità di salvare dati in locale quando non va la connessione. Quello che mi sembra mancare e come fare si che le varie pagine di cui probabilmente sarà composta la webapp siano accessibili anche in modalità offline.
Grazie

mux85
05-02-2011, 12:50
Uppo in caso qualcuno abbia altro di interessante da aggiungere

nico159
05-02-2011, 13:08
Molto interessante grazie. Il fatto di funzionare su smartphone non mi interessa più di tanto visto che si parla di terminali di negozi ma non è male per sviluppi futuri cmq.

PS guardando bene la pagina che hai linkato non risponde esattamente a quello che ho chiesto, in parte si perchè in effetti mi serve la possibilità di salvare dati in locale quando non va la connessione. Quello che mi sembra mancare e come fare si che le varie pagine di cui probabilmente sarà composta la webapp siano accessibili anche in modalità offline.
Grazie
Ti passo questo sempre dallo stesso sito http://diveintohtml5.org/offline.html ;)

Ma qua devi dimenticarti di IE. Non so fino a che punto sia possibile, lasciare ad IE gestire la cache della tua webapp e tramite storage lavorare sui dati

Su questo thread c'è un dipendente MS che risponde alle domande riguardanti il futuro IE9 http://www.hwupgrade.it/forum/showthread.php?t=2316516
Ti consiglio di fargli sapere che gli sviluppatori vogliono di queste funzionalità

mux85
05-02-2011, 14:42
ok grazie approfondirò bene su quel sito. Come ho detto il fatto che funzioni bene su tutti i browser è l'ultimo dei miei problemi.
Su silverlight avete fonti interessanti?
Sono indeciso tra silverlight e html5

mux85
06-02-2011, 12:18
Ma tra le varie tecnologie che mi avete suggerito quale permetterebbe di far andare l'applicazione offline anche nel caso che il browser venga aperto in un momento in cui la connessione è assente (ovviamente dopo essere già stato aperto in un momento in cui c'era la connessione in modo che la pagina sia già in cache)?

mux85
09-02-2011, 12:05
up

tomminno
09-02-2011, 14:47
Ma tra le varie tecnologie che mi avete suggerito quale permetterebbe di far andare l'applicazione offline anche nel caso che il browser venga aperto in un momento in cui la connessione è assente (ovviamente dopo essere già stato aperto in un momento in cui c'era la connessione in modo che la pagina sia già in cache)?

Con Silverlight sicuramente lo puoi fare, con Html5 pare si possa fare ma è determinante il supporto del browser. In ogni caso per lavorare offline l'utente deve impostare il browser in modalità offline, non è che la gestione sia proprio automatica.

mux85
09-02-2011, 15:08
Ah cavolo questo è un problema. Leggendo un po' cose mi sembra di capire che fosse automatico. Un qualche evento viene lanciato quando si passa da offline a online e viceversa. Non è così?

tomminno
09-02-2011, 15:38
Ah cavolo questo è un problema. Leggendo un po' cose mi sembra di capire che fosse automatico. Un qualche evento viene lanciato quando si passa da offline a online e viceversa. Non è così?

No, l'utente deve impostare manualmente il browser in modalità non in linea (Firefox->File->Lavora non in linea, IE->File->Offline, Opera->Menu->Impostazioni->Non in linea) pertanto non cercherà di connettersi ma utilizzerà esclusivamente la cache.
Ovvero non puoi con lo stesso browser utilizzare contemporaneamente un sito online e uno in modalità offline.
Se il tuo server è giù e l'utente imposta la modalità offline, non potrà visualizzare la intranet o andare su google.
Per lo meno questo è lo stato attuale.

mux85
10-02-2011, 09:05
No, l'utente deve impostare manualmente il browser in modalità non in linea (Firefox->File->Lavora non in linea, IE->File->Offline, Opera->Menu->Impostazioni->Non in linea) pertanto non cercherà di connettersi ma utilizzerà esclusivamente la cache.
Ovvero non puoi con lo stesso browser utilizzare contemporaneamente un sito online e uno in modalità offline.
Se il tuo server è giù e l'utente imposta la modalità offline, non potrà visualizzare la intranet o andare su google.
Per lo meno questo è lo stato attuale.

Se non va la connessione il fatto di non poter andare su google non è un problema (e non c'è una intranet). Quindi non c'è modo di mandare il browser in modalità offline in automatico quando cade la connessione?

tomminno
10-02-2011, 09:33
Se non va la connessione il fatto di non poter andare su google non è un problema (e non c'è una intranet).


Magari il problema è solo la connessione al server dove resiede il tuo applicativo.


Quindi non c'è modo di mandare il browser in modalità offline in automatico quando cade la connessione?

No, a meno di non scrivere un plugin specifico per il browser che faccia questo in automatico.

nico159
10-02-2011, 10:48
No, l'utente deve impostare manualmente il browser in modalità non in linea (Firefox->File->Lavora non in linea, IE->File->Offline, Opera->Menu->Impostazioni->Non in linea) pertanto non cercherà di connettersi ma utilizzerà esclusivamente la cache.
Ovvero non puoi con lo stesso browser utilizzare contemporaneamente un sito online e uno in modalità offline.
Se il tuo server è giù e l'utente imposta la modalità offline, non potrà visualizzare la intranet o andare su google.
Per lo meno questo è lo stato attuale.

Non è esatto, prova da te http://html5demos.com/offlineapp
Non c'è alcuna azione da fare, sia su Chrome, che FireFox che qualsiasi browser che implementa questa funzionalità

mux85
10-02-2011, 11:50
Magari il problema è solo la connessione al server dove resiede il tuo applicativo.


Forse ti è sfuggito che sto parlando di una situazione ipotetica non è che ci sia effettivamente un qualche problema particolare di connessione. Vorrei che alla fine la mia applicazione funzionasse sia nel caso che la connessione del client non funzioni che nel caso che sia il server a non avere connessione o ad essere down. Sono eventualità poco probabili ma di cui devo cmq tenere conto.

mux85
10-02-2011, 11:54
Non è esatto, prova da te http://html5demos.com/offlineapp
Non c'è alcuna azione da fare, sia su Chrome, che FireFox che qualsiasi browser che implementa questa funzionalità

In effetti avevo avuto l'impressione che funzionasse in automatico guardando quelle pagine su html5 che mi hai suggerito. Dici che è possibile memorizzare in locale con html5 un'applicazione fatta con silverlight? Perchè alla fine silverlight credo che mi servirà per forza per il problema di cui parlo nell'altro thread (l'esportazione di file excel)
Ho provato quella pagina e in effetti continuo a poterla aprire senza bisogno di mettere il browser in modalità offline anche dopo aver staccato la connessione. Però una volta ricollegato continua a rimanere nella versione offline. C'è questa scritta "IDLE (numeric value 1) -- The ApplicationCache object's cache host is associated with an application cache whose application cache group's update status is idle, and that application cache is the newest cache in its application cache group, and the application cache group is not marked as obsolete." e non ci sono le immagini in basso. Anche facendo F5 o ctrl-F5 rimane così. Idem premendo i due pulsanti che non ho ben capito cosa dovrebbero fare. Ah ho capito il perchè, andando in home dice che ci sono problemi con firefox 3.6

nico159
10-02-2011, 12:00
In effetti avevo avuto l'impressione che funzionasse in automatico guardando quelle pagine su html5 che mi hai suggerito. Dici che è possibile memorizzare in locale con html5 un'applicazione fatta con silverlight? Perchè alla fine silverlight credo che mi servirà per forza per il problema di cui parlo nell'altro thread (l'esportazione di file excel)
Puoi provare ad aggiungere nel manifest anche l' "applet" Silverlight, ma è solo un tentativo :D

Ti conviene forse creare una app Silverlight standalone

mux85
10-02-2011, 12:12
In effetti avevo avuto l'impressione che funzionasse in automatico guardando quelle pagine su html5 che mi hai suggerito. Dici che è possibile memorizzare in locale con html5 un'applicazione fatta con silverlight? Perchè alla fine silverlight credo che mi servirà per forza per il problema di cui parlo nell'altro thread (l'esportazione di file excel)
Ho provato quella pagina e in effetti continuo a poterla aprire senza bisogno di mettere il browser in modalità offline anche dopo aver staccato la connessione. Però una volta ricollegato continua a rimanere nella versione offline. C'è questa scritta "IDLE (numeric value 1) -- The ApplicationCache object's cache host is associated with an application cache whose application cache group's update status is idle, and that application cache is the newest cache in its application cache group, and the application cache group is not marked as obsolete." e non ci sono le immagini in basso. Anche facendo F5 o ctrl-F5 rimane così. Idem premendo i due pulsanti che non ho ben capito cosa dovrebbero fare. Ah ho capito il perchè, andando in home dice che ci sono problemi con firefox 3.6

ho editato il messaggio, ma sei stato più veloce tu a rispondere per cui lo quoto per comodità.
Vorrei evitare una applicazione "out of the browser" per semplificare al massimo la cosa dal punto di vista degli utenti. Per loro dovrebbe essere una pagina web e basta. Un po' come andare su facebook, è brutto da dire ma gli utenti sono a quel livello :doh:

tomminno
10-02-2011, 14:18
Non è esatto, prova da te http://html5demos.com/offlineapp
Non c'è alcuna azione da fare, sia su Chrome, che FireFox che qualsiasi browser che implementa questa funzionalità

A me con Firefox non funziona. Ad esempio per simulare un non funzionamento del server ho messo su file host un puntamento non valido per html5demos.com, in questo modo simulo perfettamente la condizione in cui il server non è raggiungibile.
L'applicazione non funziona più, mi dà il classico errore 404 di pagina non trovata. Ovviamente se metto il browser in modalità offline invece funziona.

nico159
10-02-2011, 16:55
A me con Firefox non funziona. Ad esempio per simulare un non funzionamento del server ho messo su file host un puntamento non valido per html5demos.com, in questo modo simulo perfettamente la condizione in cui il server non è raggiungibile.
L'applicazione non funziona più, mi dà il classico errore 404 di pagina non trovata. Ovviamente se metto il browser in modalità offline invece funziona.
Errore 404? A me pare che ci sia un server web che risponda dall'ip che hai fai forzato per il dominio html5demos.com
Ovviamente il browser non utilizza la versione offline se riceve risposta (in questo caso un 404, dato che su quel server web non esiste alcun /offlineapp)

Appena posso faccio anche io un test simile e ti dico i risultati

mux85
10-02-2011, 17:42
A me con Firefox non funziona. Ad esempio per simulare un non funzionamento del server ho messo su file host un puntamento non valido per html5demos.com, in questo modo simulo perfettamente la condizione in cui il server non è raggiungibile.
L'applicazione non funziona più, mi dà il classico errore 404 di pagina non trovata. Ovviamente se metto il browser in modalità offline invece funziona.

Io non ho questo problema. E mettere firefox offline non cambia nulla. Però ho il problema descritto sopra e non si è risolto nemmeno cancellando la cache

mux85
12-02-2011, 09:33
Errore 404? A me pare che ci sia un server web che risponda dall'ip che hai fai forzato per il dominio html5demos.com
Ovviamente il browser non utilizza la versione offline se riceve risposta (in questo caso un 404, dato che su quel server web non esiste alcun /offlineapp)

Appena posso faccio anche io un test simile e ti dico i risultati

Hai fatto qualche prova poi?