DB- und Offline-Synchronisierung, die im Browser funktioniert

Ich möchte eine Web-App erstellen, die offline funktionieren soll.

+----------------+                +---------------+
|  Browser       |                |  Server       |
|                |                |               |
|   +---------+  |                |               |
|   |         |  |                |               |
|   |  GUI    |  |                |               |
|   |         |  |                |               |
|   |         |  |                |  +----------+ |
|   +---------+  |                |  |   DB     | |
|       |        |                |  |          | |
|       |        |                |  |          | |
|   +---------+  |                |  |          | |
|   |   DB    |  |    Internet    |  |          | |
|   |         |  | -------------- |  |          | |
|   |         |  |      https     |  |          | |
|   +---------+  |                |  +----------+ |
+----------------+                +---------------+

Ich suche nach einem Framework, das in modernen Browsern funktioniert und eine dauerhafte Datenspeicherung bieten kann, auch wenn das Gerät offline ist.

Erforderliche Funktionen:

  • dauerhafter lokaler Speicher
  • Automatische Synchronisierung zwischen DB im Browser und auf der Serverseite
  • Open Source
  • Sollte zumindest in einem Browser funktionieren (nur Chrome reicht)
  • im Browser sollten keine Plugins erforderlich sein

Verwandt:

Antworten (5)

PouchDB hat eine Synchronisierungsfunktion: https://pouchdb.com/guides/replication.html

Das Diagramm ähnelt dem in der Frage:bag-db-sync-

Die PouchDB ist eine Javascript-Implementierung von CouchDB, die damit API-kompatibel ist. Sie können also CouchDB auf der Serverseite und Pouch in der Anwendung selbst verwenden und sobald die Anwendung online geht, können Sie beide synchronisieren. Dies ist besonders nützlich für progressive Webanwendungen, die auf einen Offline-First-Ansatz setzen.

PouchDB bietet eine vollständig asynchrone API. Dadurch wird sichergestellt, dass die Benutzeroberfläche nicht stottert, wenn Sie mit PouchDB sprechen, da das DOM nicht durch Datenbankoperationen blockiert wird.

Abfrage reagieren :

React Query wird oft als die fehlende Bibliothek zum Abrufen von Daten für React beschrieben, aber in technischer Hinsicht macht es das Abrufen, Zwischenspeichern, Synchronisieren und Aktualisieren des Serverstatus in Ihren React-Anwendungen zum Kinderspiel.

Redux-fortbestehen. Sie können mehrere Speicher-Backends verwenden:

https://github.com/rt2zz/redux-persist

PouchDB ist eine davon.

Kinto.js

Ein Offline-First-JavaScript-Client für Kinto.

Hinweis: Wenn Sie nach einem reinen HTTP-js-Client für Kinto suchen, sehen Sie sich kinto-http.js an.

Die Idee ist, Daten standardmäßig lokal im Browser zu speichern und sie dann explizit mit dem Server zu synchronisieren, wenn die Konnektivität gewährleistet ist.

Es gibt einen Vergleich von Kinto, PouchDB und anderen Lösungen: Vergleich

Offix: Offline-GraphQL-Client und -Server

https://github.com/aerogear/offix

Offix erweitert Apollo GraphQL zum Erstellen von Offline-Erfahrungen mit vollem Funktionsumfang.

Merkmale:

Offline-Unterstützung.

Mutationen werden im Offline-Modus beibehalten.

Offline-Listener und Workflows für eine nahtlose Benutzeroberfläche.

Flexible, sofort einsatzbereite Konfliktlösungsimplementierungen Abonnements und Binärdateien

Upload, der offline funktioniert.

Unterstützung mehrerer Plattformen.

Funktioniert mit Web, Cordova, Kondensator und React Native.

Framework-unabhängig (funktioniert mit React, Angular und Vue) Funktioniert mit Apollo GraphQL Server und Prisma (Yoga)