我有一个 windows phone 8 应用程序,我从 WCF 应用程序获取一些 JSON 格式的数据。
在应用程序启动时,我正在执行以下任务:
1)本地是否有对象保存,如果没有,从WCF获取数据
2)如果数据检索成功,将数据作为对象保存在Isolated Storage中
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
对象的页面上。
我该如何改进呢?