Domanda

Sto pensando di sviluppare un'app Web con funzionalità offline. Sto prendendo in considerazione la formattazione di tutti i postback del modulo client come oggetti JSON e scrivendo questi direttamente su HTML5 LocalStorage su un modulo Postback. Avrò quindi un processo separato che posiziona in modo asincrono il LocalStorage per le voci JSON e le invia al server. Questo processo di sincronizzazione server non avrà alcun contesto dell'interfaccia utente. L'interfaccia utente utente reale può quindi essere molto reattiva. (Userò i file manifest della cache per affrontare altri problemi offline).

È un piano solido e quale sarebbe la migliore implementazione tecnica del processo di post JSON asincrono? (Forse un timer, polling localStorage e che controlla la connessione del server ogni secondo?) Esiste un modo migliore per implementare la sincronizzazione del server (se stavo implementando questo su un server, scrivo un servizio - esiste un meccanismo JavaScript equivalente? )

Grazie.

È stato utile?

Soluzione 2

Alla fine ho appena usato un semplice setInterval, come segue:

setInterval("SyncLocalStorageToServer()", 4000); // Loop at 4 second intervals

che quindi chiama una funzione che si aggira intorno alle voci di LocalStorage, inviando ciascuna a sua volta al server.

Altri suggerimenti

L'anno scorso ho fatto alcuni test per eseguire la nostra app offline, solo per i browser HTML5.

L'app si basa sui servizi JSON e resa sul lato client utilizzando il nostro lib: puro.js. Ottieni un'app molto reattiva solo usando un'architettura simile, anche senza accesso offline.

Se la chiamata di servizio JSON non è riuscita, ha ipotizzato che fossimo offline e usassimo invece l'archiviazione locale.
Quando è stata effettuata una chiamata online, ha controllato lo stato della coda offline e la sincronizza se necessario.

Ma poi ho iniziato a replicare alcune logiche di convalida del server sul client. E scoperto che i dati memorizzati non sono stati crittografati. Anche con qualcosa di simile Javascrypt Hai bisogno della chiave da qualche parte o impostare una chiave password, ecc ...
Allora cosa tieni al cliente? Tutto quanto? Gli ultimi articoli visti? Come gestire le collisioni di cambiamento dei dati?

La mia scommessa è con le reti mobili di oggi, che sono online in generale, è più facile far funzionare l'app su un cellulare invece di provare a metterlo offline.
Per ora abbiamo lasciato cadere i nostri sforzi offline.

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