iOS数据库离线缓存思路和网络层封装——原理

来源:互联网 发布:win10电脑mac地址修改 编辑:程序博客网 时间:2024/05/01 00:10

数据展示型的页面做离线缓存可以有更好的用户体验,用户在离线环境下,或是网络加载异常的情况下,仍然可以获取一些已经缓存的数据进行页面的显示,以避免页面空白。

进行数据缓存操作,首选SQLite+FMDB+LKDB。因为是轻量级,对数据的存储读取相对于其他几种方式有优势。

本文是对MKNetwork的网络框架进行缓存封装。没有涉及太多业务逻辑层面的需求,只是对一些方法再次封装方便使用,也避免项目对第三方的耦合性,能够简单的快速的更换底层使用的网络请求代码。

网络数据缓存的使用主要有以下几种情况。

情况1:有缓存,且缓存没有过期时,优先使用缓存。即在进行网络请求时,首先判断是否存在本地缓存,如果已经存在且缓存没有过期,则使用缓存数据。

情况2:有缓存,但缓存已经过期时,则重新加载新数据。即在进行网络请求时,首先判断是否存在本地缓存,如果已经存在缓存,而且缓存已经过期,则重新进行网络请求,加载最新的数据,当请求加载成功后,删除过期的缓存,并将最新的数据缓存起来,同时使用最新的数据。

情况3:有缓存,但总是加载最新的数据。即在进行网络请求时,不管有没有本地缓存,都进行网络请求加载最新的数据进行使用。

基于这三种情况,在设置缓存机制时,则可以定义三种样式:

1 不做缓存处理;

2 无视缓存,总是加载最新数据;

3 缓存过期时,才加载最新数据。




0 0
原创粉丝点击