App如何更新数据

大部分以内容为主体的App,都不会把所有数据存储在App中,而是将数据存储在服务器端,从服务器中获取/更新数据。

具体情况具体分析,我们需要根据业务场景、数据量大小等,为App设计不同的获取/更新数据方式。

  • 几种常用的数据获取/更新方式

1、通过服务端数据接口,全量刷新数据。

数据更新频繁的条件下可以使用这种方式,比如新浪微博。
数据量特别小的时候也可以使用这种方式,每次重新取全部数据代价不大。

2、通过服务端数据接口,增量更新数据。

增量更新数据可以大幅度降低网络流量,降低服务器压力。
增量更新需要服务端与客户端做一些约定。
比如可以按时间更新,服务端每次数据发生变化(增删改)都需要记录更新时间。数据不允许物理删除、只可以逻辑删除。客户端根据更新时间取得该时间之后发生变化的数据并存储到本地。
另外可以通过版本号的方式对数据进行更新,客户端先从服务器端取得版本号,如果版本号变更了,则重新取数据,这应该算是一种半增量更新的方式。

3、使用WebView嵌入Web页面,实时更新数据。

这种情况实际上等同于网站的效果。
缺点是WebView目前性能上还差一个档次,需要较长的响应时间。另外每次访问需要下载整个页面内容,流量较大。
优点是跟网站一样,可以快速修改部署,可以在服务端定制包括UI在内的整个页面内容。

4、使用WebView嵌入Web页面,Web页面存储在本地,实时更新Web页面。

支付宝采用此结构。
对比3来说,4的优点是不用每次都重新下载html/css/javascript,仅需在页面发生更新的时候,重新将整个页面打包下载更新。
页面内的数据依然可以使用数据接口的方式获取。

  • 客户端什么时候更新数据

1、某些特定场景触发更新。
例如打开应用、应用从后台进入前台、用户登录、用户进入某一页面。

2、子线程定时更新数据。
专门起一个线程用来更新数据。Android下经常采用此种方法。

通常数据的获取/更新是异步的,首次打开应用除外。