一款卓越的app,它的数据肯定不是写死在本地代码中的,而是从互联网中获取得到的。由于网络数据的不稳定性,所以我们需要对数据进行缓存。意图就是在用户手机没有网络的时候,也能够加载之前缓存好的数据,从而提升用户体验。
**数据缓存的类型。** 数据总共是有几个来源的,互联网、手机内存、手机磁盘。
**数据缓存的结构。** 业务数据通常被分为两大类,列表数据和非列表数据。
**数据缓存的流程。** 服务器的数据,我们通过请求api接口可以获取到,获取到之后我们一般的处理流程就是直接显示在UI上了。也有的开发人员考虑到数据缓存这一块,但是是每个业务都写一遍增删改查。这样固然也能保证数据的缓存,但是,团队成员能力不一致将可能导致某个成员忽略这一块从而造成app整体的不一致。每次都写一遍这样的代码,也是很繁琐的。比较好的做法是,请求api接口后通过json解析,得到model数据,缓存一份数据到sqlite数据库,然后才显示在UI上。那么在下次无论用户手机有无网络,都能很好的展示这部分数据。如果用户手机有网,同一界面同一区域的数据会再次走一下这个流程,但是框架发现数据原先是有的,就会覆盖原数据(原数据先删除,再重新缓存)。如果用户手机无网,则会直接从缓存中读取正确的数据并显示在UI上。
**数据缓存的使用场景。** 比如电商的订单记录数据、聊天的离线消息以及一些其他重要的,希望用户在没网的时候也能回味的数据。