现在在开发一个类似qq的APP,在获取好友列表时,我的方式是每次从服务器把所有的数据获取后,直接在客户端用listView显示出来。但是这样效率太低了,如果有1000条好友数据,岂不是每次都要获取这么多数据呀。之前为了解决这个问题,想着把这些数据先存到本地SQLLite,然后每次刷新的时候就直接从本地取值就好了。但是坑爹的这样问题又来了,如果好友修改了资料,这个时候服务器的数据就改了,按理说客户端相对应的好友数据也应该改变,但前提是好友的数据如果没有改变就不能重新发送到客户端,可是这怎么实现呀,这些数据是通过HttpClient的POST方式传递的。
好友资料加一个update_stamp, 先获取update_stamp,这个流量很小,如果跟本地一样,就不需要更新,如果不一样再更新。
你应该缓存数据,到时候只 修改已经更新的数据。
如果客户端是第一次登陆,当然好处理:全部更新;并在本地设置已经更新的标志,下次直接使用本地数据库。
这时如果服务器端更新了数据,比较资料更新的时间戳是否一样?如果不一样,则从服务器更新资料。更新前,可以先显示更新前的资料,以确保列表显示的速度。
一般都是把第一次加载的数据缓存。等到去第二次加载的时候去比较,如果与服务器的相同就不做更改,如果不同就下载最新的。(第二次先显示旧数据)