Frage

Ich überlege, eine Web -App mit Offline -Fähigkeiten zu entwickeln. Ich denke darüber nach, alle Postbacks von Client -Formular als JSON -Objekte zu formatieren und diese direkt an HTML5 LocalStorage auf einem Formular -Postback zu schreiben. Ich werde dann einen separaten Prozess haben, der asynchron die Lokalstorage für JSON -Einträge abfragt und diese auf den Server unterbreitet. Dieser Server-Sync-Prozess hat keinen UI-Kontext. Die tatsächliche Benutzeroberfläche kann dann sehr reaktionsschnell sein. (Ich werde Cache -Manifestdateien verwenden, um mit anderen Offline -Problemen umzugehen).

Ist dies ein Klangplan und was wäre die beste technische Implementierung des asynchronen JSON -Postprozesses? (Vielleicht ein Timer, der LocalStorage befragt und die Serververbindung jede Sekunde überprüft?) Gibt es eine bessere Möglichkeit, die Server -Synchronisierung zu implementieren (wenn ich diese auf einem Server implementiert würde, würde ich einen Dienst schreiben - gibt es einen äquivalenten JavaScript -Mechanismus? ))

Vielen Dank.

War es hilfreich?

Lösung 2

Am Ende habe ich gerade ein einfaches SetInterval verwendet, wie folgt:

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

Dies ruft dann eine Funktion auf, die sich um die lokalen Storage -Einträge umschaltet und jedes wieder an den Server sendet.

Andere Tipps

Ich habe letztes Jahr einige Tests durchgeführt, um unsere App nur für HTML5 -Browser auszuführen.

Die App basiert auf JSON -Diensten und hat die Client -Seite mithilfe unserer LIB: Pure.js. Sie erhalten eine sehr reaktionsschnelle App, nur mit einer ähnlichen Architektur, auch ohne Offline -Zugriff.

Wenn der JSON -Serviceanruf fehlschlägt, wurde angenommen, dass wir offline waren und stattdessen lokale Speicher verwendet haben.
Wenn ein Anruf online durchgeführt wurde, überprüfte er den Status der Offline -Warteschlange und synchronisiert ihn bei Bedarf.

Aber dann habe ich angefangen, eine Servervalidierungslogik im Client zu replizieren. Und entdeckte, dass die gespeicherten Daten nicht verschlüsselt wurden. Auch mit so etwas wie Javascrypt Sie benötigen den Schlüssel irgendwo oder setzen Sie einen Kennwortschlüssel usw.
Was halten Sie dann dem Kunden? Alles? Die zuletzt angesehenen Elemente? Wie behandeln Sie Datenänderungskollisionen?

Meine Wette ist mit den heutigen mobilen Netzwerken, die im Allgemeinen online sind. Es ist einfacher, die App gut auf einem Mobiltelefon zu lief, anstatt zu versuchen, sie offline zu machen.
Wir haben unsere Offline -Bemühungen vorerst fallen gelassen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top