2011-04-30 16 views
8

オフラインとオンラインで作業するアプリケーションを作成するときは、一度オフラインで作業すると一番書きやすく、オンラインモードはオフラインと同じように動作します。オフラインで作業するアプリケーションを作成する(Webアプリケーション)

たとえば、典型的なショッピングカートの例があります。ショッピングカートにはアイテムと顧客が含まれています。

ショッピングカートがロードされると、すべてのアイテム+顧客をローカルストレージにキャッシュし、そのデータキャッシュをオンラインとオフラインの両方で使用し、必要に応じてキャッシュを更新する必要がありますか?オフライン/オンラインのハイブリッドWebアプリケーションを開発する際のベストプラクティスは何ですか?

答えて

7

オンライン/オフラインモードで動作するWebアプリケーションを作成することは、実際には、通常のサーバードリブンWebアプリケーションを作成することに非常によく似ていますが、例外的に、データアクセスレイヤー(DAL)サーバー上に存在するデータ(オンラインモード)またはブラウザのデータ(オフラインモード)のいずれかに存在するデータ。

アプリケーションとそのニーズに応じて、次の2つのモードのいずれかで実行することができます:a。)キャッシュ・アンド・トライ・ベスト・モードまたはb。)ロード・オール・アンド・チェック・フォー・モードモードを更新します。

これらの2つのモードのそれぞれには、いくつかの良い部分と悪い部分があります。アプリケーションのさまざまな部分が間違いなく傾いていることは間違いありません。

キャッシュ・アンド・トライあなた-ベストモードこのモードでは

、それは操作の通常の過程だ時にそれがデータにアクセスすると、ブラウザのデータストアにサーバーからDALがデータをキャッシュします。一旦オフラインモードになると、DALはユーザーの要求を満たすことをお勧めしますが、キャッシュされたデータのみが処理されるため、一部の操作を完了できない(または少なくとも間に合わない)可能性があります。アップサイドでは、データのロードを待つ起動時間は最小限ですが、ダウンサイドでは、すべてのアクションでサーバーヒット(接続されている場合)が必要で、そのデータをキャッシュする必要があります。また、不完全なデータのために完了できない操作についても、正常に機能しなくてはなりません。

ロードすべて-と-チェックのために、アップデートモード

この場合、DALは、アプリが起動し、アプリケーションがブラウザに必要なデータのすべてをロードします。アプリが既にロードされている場合、キャッシュが失効していないことを確認するために、すべてのデータを更新する必要があります。アップサイドでは、すべてがローカル操作なので、ユーザはこれまで非常に長い時間待つ必要はありませんが、ダウンサイドでは、多くのデータがある場合、起動時間はかなり長い。

どちらの場合でも、古いキャッシュの問題に対処する必要があり、オフライン操作をサーバーに永続的に発行する必要があります。これは起動時に、またアプリが実行中に定期的に定期的にサーバーに同期して、キャッシュされたデータを最新の状態に保ち、サーバーで使用できるローカル専用の状態を共有する必要があることを意味します世界の他の国々は、アプリケーションのそのインスタンスからの更新を見ています。

アプリケーションがオフラインモードになっている間に発生したサーバーへの永続的な操作は、その操作に関連するデータがアプリケーションの更新の間に変更された場合には特に難しいことがあります。例えば、キャッシュされた銀行残高が期限切れであり、サーバによって反映された「真の」状態よりもはるかに多くの金額を示す場合、ユーザはそれを知らずにアカウントを上回る可能性がある。これは極端な例ですが、この種の操作上の衝突検出は、相互に実行される更新を処理するために必要です。

一般に、オンとオフラインの両方に対応するアプリがある場合は、アプリ自体に気にする必要がないようにアプリを書きます。下位レベルのデータレイヤーはすべての問題を抽象化し、アプリケーションは必要な情報(オンラインまたはオフラインの優れたアプリケーション)を入手できないように対処する方法しか知りません。

ショッピングカートの場合、個別の顧客よりも多くの商品がカートに入れられる可能性があります(またはうまくいけば)。すべてのユーザーのブラウザにすべてをロードすることは、帯域幅の大部分を浪費しており、ユーザーにかかる遅延を招き、膨大な帯域幅のコストと紛失した販売(応答時間が遅いため)によって、必要に応じてブラウザのデータに製品をロードし、必要に応じてカート内の実際のアイテムに関連付けられた「他のユーザーも購入した」他の製品を読み込むことができます。

関連する問題