2011-01-02 14 views
0

私はWebアプリケーションとiphoneアプリケーションの両方から編集/表示できるTODOリストiphoneアプリケーションを持っているとします。iphoneとサーバーの間でデータとキャッシュデータを同期させるための戦略

iPhoneの場合、ユーザーが自分の予定リストやサブアイテムをすべて表示すると、ユーザーが特定のリストを表示するたびにWebアプリケーションAPIを毎回打つべきではないと思いますむしろローカルに値をキャッシュし、物事が変わったときにのみウェブにヒットします。

このタイプのscenerioにはどの戦略がありますか?

答えて

0

私はあなたの汚れていない、サーバーと接触しない点に同意します。そして、私はこの点が非常に簡単で実装が簡単だと思います。

ただし、このシナリオでは注意してください。汚れても、同時にデバイスはインターネットに接続できません。このシナリオでは、(あなたのアプリがバックグラウンドであっても)頻繁にインターネットアクセシビリティをチェックして、可能な限りサーバーにアクセスして更新を試みることをお勧めします。

0

これは難しい問題です。私は現在、同様の同期を実行する必要があるアプリケーションに取り組んでおり、私はそれをどのように扱いたいのかをまだ決めていません。

あなたはウェブを繰り返し打つことを望んでいないという点で正しいです。それはアプリケーションを大幅にダウンさせるでしょう。ローカルキャッシュを保持することは、方法です。

1つの欠点は、ユーザーがウェブ上のアイテムを変更/追加でき、電話で表示されないことです。ユーザーが変更を取得できるようにするには、(Mailアプリケーションなどの)更新ボタンが必要です。

次に、競合の解決に問題があります。同じアイテムが電話とウェブの両方で編集されているとします。ユーザーはどのようなものを選んで保存するのか、複製するのか

0

私はこれを行う最善の方法は、CoreDataのサーバーのスキーマを複製することだと思います。次に、ローカルDBから特定の要素をロードし、の背景でが出て、デバイスにインターネット接続がある場合は、その要素の更新を確認します。毎回dbに当たっていますが、プロセスによってユーザーが遅くなることはありません。

0

リストを表示するたびにインターネットに問い合わせるべきではありません。

しかし、それを更新したり編集したりするときは、サーバーも更新する必要があります。それはあなたの人生をずっと簡単にします。こうすることで、ユーザーがWebサーバーで削除したアイテムを更新すると、サーバーはその要求を送出します。

関連する問題