原文发布在个人简书,更多内容欢迎关注笔者简书 ,评论、互相交流请到简书,谢谢!
现在许多主流的App都会做离线缓存
功能,比如“今日头条”,“新浪微博”,每次启动项目或者刷新有网络时都是获取网络数据,网络出错时会展示缓存数据提高用户体验。
笔者就结合之前见过的、以及笔者自己做缓存的方式,谈一谈离线缓存的实现方案以及其中的优缺点。“今日头条”,“新浪微博”都是缓存了第一页的数据,笔者这里也是这样。
无demo不文章,笔者已将demo1 和demo2 写好,欢迎下载.
缓存数据的方式一般有以下几种:
- 保存到plist文件
- 保存到沙盒
- CoreData
- 数据库
由于这里缓存相对大量的数据,采用sqllite数据库来实现离线缓存。
通过下面几个问题来讲述离线缓存的过程
- 怎么设计SQL语句?
- 缓存什么样的数据到数据库: JSON格式数据 or 模型格式数据?
- 缓存key的格式:URL+参数的方式
- 缓存的方案
一、怎么设计SQL语句?
有的朋友在做缓存的时候,会这样设计sql语句
上面的方式设计sql语句,看上去明显很繁琐,涉及到的字