WCF アプリケーションから JSON 形式のデータを取得している Windows Phone 8 アプリケーションがあります。
アプリケーションの起動時に、次のようなタスクを実行しています:
1)ローカルに保存されたオブジェクトはありますか?そうでない場合は、WCFからデータを取得します
2) データの取得に成功したら、データをオブジェクトとして分離ストレージに保存します。
3) 等等
ここで私が目にする問題は、データがサーバーから取得されるまでに、取得されたデータが表示される次のページにユーザーが到達することです。
これは私のコードです:
public void GetSomething()
{
var webClient = new WebClient();
var uri = new Uri("URL Goes Here");
webClient.OpenReadCompleted += webClient_OpenReadCompleted;
webClient.OpenReadAsync(uri);
}
private void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
using (var sr = new StreamReader(e.Result))
{
string data = sr.ReadToEnd();
var result = JsonConvert.DeserializeObject<Response>(data);
var isolatedStorage = new IsolatedStorage();
isolatedStorage.SaveSightingTypes(SightingTypes.List);
// Store in Singleton Object
SightingTypes.List = result.SightingTypes;
}
このwebClient_OpenReadCompleted
メソッドは、データがサーバーから送信されるときに実行されます。しかし、前述のように、これは 3/4 秒後にトリガーされることがあり、それまでにユーザーはオブジェクトが必要なページに移動しSightingTypes.List
ます。
どうすればこれを改善できますか?