質問

オフライン機能を備えたWebアプリの開発を検討しています。すべてのクライアントフォームのポストバックをJSONオブジェクトとしてフォーマットすることを検討しており、これらをフォームポストバックでHTML5 LocalStorageに直接書き込みます。次に、JSONエントリのLocalStorageを非同期的に投票し、これらをサーバーに提出する別のプロセスを作成します。このサーバーシンクプロセスには、UIコンテキストはありません。実際のユーザーUIは非常に応答性が高い場合があります。 (キャッシュマニフェストファイルを使用して、他のオフラインの問題に対処します)。

これは健全な計画であり、非同期JSONポストプロセスの最良の技術的実装は何ですか? (おそらく、タイマー、ローカルストレージの投票、サーバー接続のチェックごとに毎秒?)サーバーの同期を実装するより良い方法はありますか(サーバーにこれを実装していた場合、サービスを書きます - 同等のJavaScriptメカニズムはありますか? ))

ありがとう。

役に立ちましたか?

解決 2

最後に、次のように、単純なsetintervalを使用しました。

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

次に、ローカルストレージエントリの周りにループする関数を呼び出し、それぞれをサーバーに送信します。

他のヒント

昨年、HTML5ブラウザのみのアプリをオフラインで実行するために、いくつかのテストを行いました。

このアプリはJSONサービスに基づいており、LIBを使用してクライアント側をレンダリングしました。 pure.js. 。オフラインアクセスがなくても、同様のアーキテクチャを使用して非常にレスポンシブなアプリを取得します。

JSONサービスコールが失敗した場合、オフラインであると想定し、代わりにローカルストレージを使用しました。
電話がオンラインで行われたとき、オフラインキューのステータスを確認し、必要に応じて同期します。

しかし、その後、クライアントにサーバー検証ロジックを複製し始めました。保存されているデータが暗号化されていないことを発見しました。のようなものでさえ JavaScrypt どこかでキーが必要であるか、パスワードキーなどを設定します...
では、クライアントに何を保持しますか?すべての?最後に表示されたアイテム?データの変更衝突を処理する方法は?

私の賭けは、一般的にオンラインである今日のモバイルネットワークにありますが、オフラインにしようとするのではなく、アプリをモバイルでうまく実行する方が簡単です。
今のところ、オフラインの取り組みを削除しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top