从服务端加载数据的一些疑问

challchampion 2014-12-03 09:40:37
可能问题比较多,我尝试说清楚,比如我有一个ListView,需要从server加载很多数据,这样就有许多不同的疑问
1,数据在本地是如何保存维护的呢,放在内存,持久化到flash?如果我们需要离线也能显示数据,肯定要保存在本地数据库了,但是如果保存在数据库,我们还需要设置一层内存缓存,来加速view获取数据的速度呢?或者使用loader
2,数据保存到本地后,就面临一个更新的问题,通常大量数据时要分页获取的,通常我们分页是按时间来处理的,只获取时间线上的新数据就行,但是时间线上的旧数据也可能变化,比如微博上你新关注了一个人,那么这个人几天前发的微博也需要显示在你的时间线上,这种情况下怎么去让数据一直和服务器保持一致呢?
3,有些轻量的操作,比如关注,拉黑什么的,为了加快响应,通常在没有和server交互前,就响应用户成功了,如果两个用户的操作发生冲突怎么处理呢?

总体上,想请教下大家在本地处理数据的策略都是怎样的?欢迎指教和讨论,谢谢
...全文
147 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Birds2018 2014-12-03
  • 打赏
  • 举报
回复
如果放到本地sdcard中或者数据库中 为了安全你可以做个加密。 考虑到手机性能适当的做内存缓存,尤其是一些bitmap,有些数据服务器端并没有变化也可以做内存缓存。 分页的话都是先到服务器端找数据 因为有些老数据可能很少去关注 放在本地缓存中占用空间. 要是为了提高性能 可以考虑发送标记给服务器 服务器响应给你 有哪些新数据更新了,只是返回数据的ID,这样减少没变化的数据占用太多的流量。
challchampion 2014-12-03
  • 打赏
  • 举报
回复
我说个具体场景吧,还是拿微博说,比如现在本地数据库里存了2014-12-03 13:30:00之前我关注用户的微博数据,而我现在新关注了两个用户,我现在刷新了,那么首先,我要取2014-12-03 13:30:00之后的数据,这部分数据包括了新关注用户的微博数据,但是新关注用户2014-12-03 13:30:00之前的微博,我就得去单独获取,然后和本地数据库整合吧,但是,新关注用户只是一个可能导致老数据需要更新的情况,如果有更多的情况,我就要获取更多的数据,这样就比较麻烦了,我是想知道有没有比较通用的处理策略 这个场景里,服务器有数据变化,但是不是微博数据的变化,而是当前用户关系的变化,而我是去获取微博数据,微博数据可能在新的时间里根本就没有变化
引用 3 楼 birdsaction 的回复:
用合并的方式,服务器如果发生了数据变化 最后修改时间一定会变 你取最新的和你的老数据比较 然后合并。这个比较容易点。
Birds2018 2014-12-03
  • 打赏
  • 举报
回复
用合并的方式,服务器如果发生了数据变化 最后修改时间一定会变 你取最新的和你的老数据比较 然后合并。这个比较容易点。
challchampion 2014-12-03
  • 打赏
  • 举报
回复
谢谢回复,关于分页,我们通常只是关注新的时间段里的数据,旧数据有变化的时候,你说的发送标记给服务器是一个办法,但是考虑到旧数据可能是由服务器端多个表里数据组合的结果,服务端并不容易检查到变化,而且服务端对每个客户端保存数据的情况也无从知道,这个是我觉得比较难处理的地方 还有就是几个客户端同时修改某些数据可能带来的冲突也是难以处理的 以微博为例,我现在关注了两个人,取消关注了第3个人,那么这就会影响到本地保存的老数据了(老数据里关于这3个人的数据需要删除,增加),我应该采取什么样的策略去更新老数据呢,而且考虑到关注取关只是导致老数据需要更新的一种情况
引用 1 楼 birdsaction 的回复:
如果放到本地sdcard中或者数据库中 为了安全你可以做个加密。 考虑到手机性能适当的做内存缓存,尤其是一些bitmap,有些数据服务器端并没有变化也可以做内存缓存。 分页的话都是先到服务器端找数据 因为有些老数据可能很少去关注 放在本地缓存中占用空间. 要是为了提高性能 可以考虑发送标记给服务器 服务器响应给你 有哪些新数据更新了,只是返回数据的ID,这样减少没变化的数据占用太多的流量。

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧