程序人生

写优雅的程序,做优雅的人

一种轻量的移动应用离线操作和数据同步策略

| Comments

对移动应用而言,离线操作和数据同步是一件烦人的事情,组合使用本地数据,远程数据缓存和服务请求暂存的策略,可以使之变得比较轻松简单。

使用本地数据

为了 app 在离线状态下部分功能依然能够使用,可以把部分数据直接和应用打包在一起发布。这样当应用检测到网络不通时,可以使用本地数据。比如对于食物查询功能,在网络通的时候是请求服务器完成查询的,当网络不通时,就使用本地的数据做查询。使用本地数据有两个制约,一是本地数据不能太大,太大的话应用打包后的体积会很大;二是本地数据的功能有所限制。比如对于食物查询而言,通过请求服务器完成时可以使用比较智能的搜索,使用本地查询的化就只能使用简单的文本匹配了。所以在离线操作时,需要提示用户使用的是本地数据,功能所限,联网使用的话才能使用完整功能。

远程数据缓存

因为本地数据有很多限制,数量不全,然后内容也不全,使用远程数据缓存可以减轻本地数据的限制。比如,食物数据只包括了最基本的名称和单位热量数据,没有包括额外的介绍、评价等数据。但是用户已经查询的食物数据可以缓存起来,离线操作查询的时候也可以显示这些信息。另外,缓存数据的一大好处是能大幅提高应用的性能。毕竟大部分操作是以读为主的,数据的变化也不是很频繁,如果利用缓存的话,能够大幅减少请求次数和网络带宽。

暂存数据操作请求

对于写请求的操作,在离线的时候,可以简单的把整个请求 URL 和 参数先保存起来,等到网络通了只会,再依次按顺序发送给服务器完成操作。这种方法,对比应用和服务器之间互相跟踪数据变化记录,然后根据变化记录操作数据的方法,要简单得多,而且如果中间出现问题,故障处理也要简单可靠的多。

Comments