首页 > 代码库 > WP8.1 Runtime应用利用HttpClient初始化数据的一些考虑

WP8.1 Runtime应用利用HttpClient初始化数据的一些考虑

刚开始做WP Universal App,首页是一个登录页面,根据登录人的LoginID去从服务器端请求数据,并且保存到本地数据(Sqlite)。本来想的很简单,但是在开发过程中还是有一些麻烦。我的方案不是最好的,欢迎大家批评。

1. 数据量大,请求时间较长,影响用户体验

  登录的时候要调用7、8个接口去请求数据,有的接口数据量很大,点击“登录”按钮后造成页面假死的状态。

 解决方案:给用户展示数据请求状态,进行友好提示。在登录页面放置一个全屏的Grid,背景色设置成黑色,并且设置透明度,然后Grid里放置一个TextBlock,text绑定一个实现了INotifyPropertyChanged接口的类的一个属性(比如说Progress类的Content属性)。点击“登录”后,这个Grid覆盖整个页面,并且显示当前正在请求什么数据。有时候我们请求接口会是一个单独的Class,比如说DataAccess类,在主页面去调用这个类,那么就需要在DataAccess类的构造函数中把页面传进来,在请求接口方法中对页面的Progress实例的Content属性负值,即当前请求接口的状态。这样就实现了友好的用户提示。

2. 要验证用户信息通过之后才能调用其它接口,但是HttpClient为异步操作,并不会顺序执行接口。

解决方案:在调用方法的时候写成嵌套式的,即在第一个方法中调用第二个方法,在第二个方法中调用第三个方法,依次类推,这样方法会顺序执行。

 

WP8.1 Runtime应用利用HttpClient初始化数据的一些考虑