2013-05-08 18 views
13

Ho una semplice applicazione web html5/javascript single-html-file che ho archiviato nella mia casella personale. È una sorta di strumento per il monitoraggio del tempo che ho scritto e salva i dati dell'applicazione nell'archivio locale. Dal momento che è a uso personale, mi piace la comodità di un'app offline.C'è un modo per sincronizzare automaticamente html5 localstorage tra computer

Ma ho diversi computer, e ho cercato di trovare una sorta di modo hacky per sincronizzare i dati di questa app (che attualmente utilizza la memoria locale) tra i miei vari computer.

Sembra che chrome consenta la sincronizzazione dei dati, ma solo per le estensioni chrome. Ho anche pensato che potrei avere la pagina web in grado di salvare/caricare automaticamente i suoi dati da un file in una cartella dropbox, ma non sembra essere un modo per sincronizzarsi automaticamente con un file specifico senza chiedere all'utente.

Suppongo che la soluzione "ovvia" consiste nel mettere la pagina su un server e archiviare i dati in un database. Ma supponiamo che io non voglia una soluzione che mi imponga di mantenere le app su un server - c'è un altro modo, per quanto hacky, di mettere insieme la sincronizzazione?

Ho anche cercato un po 'di tempo per vedere se c'era un venditore che offriva un servizio di database web - dove potevo, per esempio, postare/ottenere un blob di json su richiesta, e poi in qualche modo avere la mia app offline con questo servizio , ma la politica della stessa origine sembra invalidare quel piano (e inoltre non sono riuscito a trovare un servizio simile).

C'è una soluzione difficile/subdolo a questo problema utilizzando chrome, o google drive o dropbox o qualche altro strumento di cui non sono a conoscenza? O sono bloccato a configurare il mio server?

+0

Non ho provato, ma può essere possibile leggere un file di dati dal file system locale utilizzando Ajax se si avvia Chrome con il '--allow-file-access-from -file' bandiera. Inoltre, questo non sarebbe al 100% offline, ma vale la pena di provarlo: https://www.dropbox.com/developers/chooser – bfavaretto

risposta

3

A quanto pare, ho esattamente lo stesso problema e lo ho sempre verificato. La scelta migliore sarebbe remoteStorage, se si riuscisse a farlo funzionare. Permette di utilizzare server di terze parti per l'archiviazione dei dati o eseguire la propria istanza.

5

Ho lavorato a un progetto che fondamentalmente offre localStorage con supporto per la risoluzione dei conflitti se la stessa risorsa viene modificata da due client diversi. A questo punto non ci sono driver per server o client (sono attualmente in memoria asincroni per scopi di test) ma c'è molto codice e astrazione per rendere la scrittura dei propri driver davvero facile ... Ero addirittura pensando di fare da solo un driver dropbox/google docs, eccetto che voglio DynamoDB/MongoDB e Lawnchair prima.

Il codice non dipende da jQuery o da altre librerie e c'è una demo piuttosto completa (anche se brutta) per come funziona.

In ogni caso l'URL è https://github.com/forbesmyester/SyncIt