2016-03-30 8 views
0

私はニュースアプリケーションネットワークライブラリとしてvolleyを使用しています。最初の接続でアプリケーションを望み、webserviceで利用可能なすべてのニュースを取得し、アプリケーションを開くたびに新しいニュースがサーバー更新のvolleyキャッシュで利用できるかどうかを確認します。問題は、キャッシュを更新する通常の方法は何ですか?サーバーからの通知を送信するのは良い戦略ですか、またはアプリケーションを開くたびにサーバーをチェックしていますか?バレーキャッシュアップデート戦略

+1

あなたのアプリケーションで可能であれば、ユーザーがアプリケーションを100回連続して開くことができ、新しいニュースが利用可能かどうかを確認する要求を送信する必要があるたびに、サーバーから通知を送信する方が明らかに優れています。 – Wukash

答えて

1

2つの主なオプションがあります。 1.使用純粋にデフォルトのHTTPキャッシュ(デフォルトのボレーの実施又は使用をボレー任意のHHTPスタックの1) 2.あなたが正確にどのように、何にを定義することができ、独自のカスタムキャッシュを使用キャッシュ

オプション1については、これを使用しているようですので詳しく説明します。

キャッシュされたレスポンスを通常持っている場合、返されたキャッシュヘッダーに情報が含まれているため、通常は外部情報を更新する必要はありません。

だから、応答(例えば記事が)ことができます:有効なキャッシュにキャッシュされ 1) - 何の要求はネットワーク層 2に進みません。その場合には)キャッシュされた魔女は、再検証する必要があります - その場合、あなたの中に新しいバージョンのレスポンスを受け取るか、現在のキャッシュが有効であり、まだ使用可能であることを意味するNOボディ付きの304レスポンスを受け取る可能性があります。 3)キャッシュされない - 新しいリクエストが行われました

つまり、正しいキャッシュあなたのニュースサーバーのヘッダーは、新しいデータをチェックするためにアプリケーションが起動するか、アクティビティが再開されるたびにリクエストを行うことができ、あまりにも多くのリクエストが送信されることを心配する必要はありません。特に記事の変更頻度が高い場合、これはより良いオプションです。

一方、適切なヘッダーがない場合、またはニュースを更新するのはめったにない場合はプッシュ通知を送信するオプションですが、すべてのクライアントに送信する必要があります多くの変更があり、実装、保守、コストの複雑さも高くなります。