molily: Welches Datenbanksystem für On- und Offline-Storage

Beitrag lesen

Hallo,

ich glaube, da überschätzt, was der Client ohne den Server kann. Zugriff auf Datenbanken wie MySQL ist nur auf dem Server mit einer serverseitigen Programmiersprache und der entsprechenden nativen Bibliotheken möglich. Ohne Internetverbindung ist der Browser auf sich gestellt, unterstützt also nur HTML, CSS und JavaScript und evtl. Flash, Java und ActiveX. Er kann nicht ohne weiteres mit Datenbank-Daemons kommunizieren, er kann keine beliebigen Dateien lesen und schreiben. Zumindest wenn du den HTML5 Offline Storage verwendest.

Wenn du andere Weisen verwendest, deine Site herunterzuladen, könntest du natürlich auch ausführbaren Code einschließen - aber dann wärst du im Bereich der Desktop-Anwendungen und deren Programmierung, die natürlich viel mehr können als eine Offline-Webanwendung im Browser mit HTML/CSS/JavaScript.

Über JavaScript hast du verschiedene Möglichkeiten, auf Browser-interne Datenbanken zuzugreifen. Wie gesagt unterstützen einige Browser localStorage, das ist aber nur ein einfacher Key-Value-Store mit Strings, der dir keine Möglichkeiten bietet, wie du sie von MySQL gewöhnt bist. Andere Browser kennen SQLite-Datenbanken, was schon näher an MySQL ist. Eine weitere zukünftige Technik ist indexedDB. Die Browserunterstützung dieser Techniken ist sehr unterschiedlich. Wenn du den JavaScript-Weg wählst, welche Browser willst du unterstützen?

In all diesen Fällen wird ein anderes Format als MySQL verwendet, d.h. du müsstest die Synchronisation selbst implementieren und kannst nicht einfach Datenbank-Dateien hoch- und herunterladen. Als Übertragungsprotokoll kommt nur HTTP infrage, d.h. der Client müsste die geänderten Datensätze (Deltas) zum Server senden.

So, wie du dir den Workflow vorstellst, geht es nur sehr schwierig mit JavaScript als clientseitiger Sprache. Vielleicht wird es letztlich einfacher sein, eine native Desktop-Anwendung zu programmieren, die bspw. auf SQLite aufsetzt. Darin könntest du tatsächlich Datenbank-Dateien austauschen. SQLite lässt sich sehr einfach client- sowie serverseitig verarbeiten, eine native Desktop-Anwendung vorausgesetzt.

Mathias