2010-04-13 12 views
32

Mögliche Duplizieren:
Best way to synchronize local HTML5 DB (WebSQL Storage, SQLite) with a server (2 way sync)Wie synchronisiert man HTML5 local/webStorage und serverseitigen Speicher?

ich zur Zeit Lösungen zu suchen bin für transparent und automatisch zu synchronisieren und auf der Client-Seite HTML5 local oder Web-Speicher und (möglicherweise mehr) Replizieren server- Side-Speicher (die einzige Voraussetzung hier, dass es einfach und kostengünstig sein sollte, auf einem regulären Hosting-Service zu installieren).

Haben Sie irgendwelche Erfahrungen mit solchen Bibliotheken/Technologien, die Datenspeicher bieten, die die Client-Server-Speichersynchronisierung automatisieren und es erlauben, dass Daten entweder offline oder online oder beides verfügbar sind? Ich denke, das ist ein ziemlich häufiges Szenario von Web-Anwendungen, die den Offline-Modus unterstützen ...

+0

Das Problem der Synchronisation ist sehr schwer, mit nur einem Server und einem Client, aber wenn man in Betracht ziehen mehrere Clients (Desktop/Mobile) und mehrere Server, wird es so viel schwieriger. Das heißt, ich wäre sehr interessiert zu wissen, ob Sie Bibliotheken, Lösungen oder einfach nur grundlegende Ideen dafür finden. Prost! – Anurag

Antwort

5

Es hängt davon ab, was Sie wollen. Es gibt ein großartiges Tutorial, um loszulegen: http://hacks.mozilla.org/2010/01/offline-web-applications/ Wenn Sie nicht etwas Kompliziertes machen wollen, sollten Sie nicht so viel von einem Framework brauchen, um es für Sie zu tun. Ich denke, Sie könnten ein paar Zeilen Code auf dem Client mit jQuery speichern. Sie möchten grundsätzlich in Ihrem Speicher eine Aufzeichnung darüber aufbewahren, wann die letzte Änderung am Speicher vorgenommen wurde, als das letzte Update für den Server durchgeführt wurde, und die Variable localStorage als JSON in ein XHR (oder nur das Bit des lokalen) codieren speichern, die Sie senden möchten). Dann können Sie auf dem Server den JSON dekodieren und damit machen, was Sie wollen, ihn verarbeiten oder einfach mit der PHP-Serialisierung in eine Datenbank ablegen.

Wenn Sie etwas Bestimmtes im Kopf haben, erwähnen Sie es.

+0

Danke für den tollen Artikel! Es demonstriert wunderbar das Prinzip und die Verwendung der relevanten APIs. Es zeigt jedoch nur eine manuelle Lösung für einen sehr spezifischen Unterfall. Wie Anurag sagte, werden Dinge schnell nicht trivial, wenn Nebenläufigkeit, Zweiwege-Synchronisation, Fehlerbehandlung usw. auftreten. Deshalb suche ich nach einem besser verwalteten Weg. – thSoft

+0

Ein detaillierterer Artikel zur Datensynchronisation: http://www.ibm.com/developerworks/library/wa-html5db/index.html –

1

Ich habe gerade ein recht neues Framework gefunden, das genau das tut: Impel.inTouch. Seine Schemadefinition scheint ein wenig unbequem, aber definitiv einen Versuch wert.

+0

Ironischerweise fand ich diese Antwort nur ein bisschen nach dem Angebot einer Prämie. : D – thSoft

+0

Leider wird Impel nicht mehr unterstützt - und was derzeit existiert, funktioniert nur mit MooTools. – PhillipKregg

1

this question ist ziemlich ähnlich.

Dort, 'Quick Connect' - http://quickconnect.pbworks.com/Using-Enterprise-Synchronization und mein persönlicher Favorit 'PersistenceJS' - https://github.com/zefhemel/persistencejs werden empfohlen.

Sobald ich persönliche Erfahrung sammeln, werde ich diesen Beitrag aktualisieren.

+4

Haben Sie schon persönliche Erfahrungen gesammelt? – user221287

+0

Ich habe eigentlich meine eigene Lösung geschrieben, basierend auf backbone.js – TinkerTank

+0

Hast du es opensource gemacht? Kannst du es mit uns teilen? – user221287