まず、オフラインストレージが必要です。 HTML5の機能は、google gears developer blogに記載されているように、Google Gearsの後継機種です。本質的に、Google Gearsの目的は、HTML5の機能を引き続き採用するために、&の開発をプッシュすることでした。
具体的に、あなたはHTML5 offline(here's a tutorial)のAPIを見てしなければならない、とStorage APIも(relevant tutorial)便利になることがあります。
デザインに関しては、完全なWebアプリケーション状態のクライアント側を維持し、サーバーへの接続が再び利用可能になるとすぐに差異を送信(つまり、サーバー側の状態を更新)する必要があります。
明示的にクライアントとサーバのための独立したアプリケーションの状態を維持する:私の頭の上オフ
は、これを設計する2つの簡単な方法があります。基本的には、ユーザーがアクションを実行すると、クライアントアプリケーションの状態に最初に適用され、次に指定された間隔で(および/またはユーザーが保存ボタンをクリックするなどのトリガー)、クライアントは最後の既知の状態サーバーとクライアントの現在の状態。高度なインタラクティブなWebアプリケーションにはおそらく最適ですが、Google Docsはこの種のデザインで動作すると思われます。アプリケーションに応じて(変更が矛盾する場合)、アプリケーションの状態をマージする必要があります:最後に受信したクライアントの状態で上書きするのか、それともインテリジェントに結合しようとしますか? (特定のアプリケーションにはどちらが適しているかを判断する必要があります。)
オフラインでユーザーの操作を記録し、接続が再び利用可能になったら再生します。基本的にはCommand design patternを実装し、クライアント側コードとサーバー側コードの両方で各コマンドを処理できるようにします。クライアント側のコードは常に各コマンドを処理し、サーバーへの接続が利用可能な間は、クライアント側のコードもコマンドをサーバーに送信します。サーバーへの継続的なリクエストを避けるために、いくつかのバッチ処理を実装し、サーバーへの要求が失敗した場合(たとえば、変更が競合する)ロールバック機能を実装することもできます。これは、GMailの主な電子メール管理ユーザーインターフェースのように、操作をやり直すことができます。
代替手段を試すことができます。たとえば、オフラインモードで使用されるフラッシュアプリケーションです。 Webアプリケーションはオンラインモードで使用されていました。 –
オフラインストレージは過大評価されています。 – bhagyas