美文网首页
浅谈iOS中的数据缓存的重要性

浅谈iOS中的数据缓存的重要性

作者: 90后的晨仔 | 来源:发表于2017-11-15 21:34 被阅读37次

    其实谈到“数据缓存”,之前在开发中想必大家都已经使用过了,但是我觉着应该系统的对数据缓存进行一下了学习总结。本次总结主要是针对“数据缓存”,总结如下。

参考链接:https://www.cnblogs.com/wendingding/p/3950198.html

一、APP中为什么要用到数据缓存?

    我们都知道APP中的数据都是通过网络请求从后台获取的,假设你有3个界面需要显示相同的数据,那么不用缓存技术的话,你可能就得对同一个URL进行3次网络请求。可能次数不多的时候感觉不到APP性能会出现问题,那假如是10次、100次(这里举的例子有些夸张)....你觉得你的APP会怎样?不用说肯定会卡顿的,而且也会对用户造成很不好的体验,还浪费用户的流量。所以可以简单的将数据缓存概括为如下内容:

使用场景:

    就如同上边的例子一样,你请求一次和请求多次结果肯定是一样的,因为服务器返回给你的数据都是同一组数据。
简略图如下:


直接请求网络.png

1、针对上图分析可能会出现如下现象:

(1)、由于每次使用数据的时候都是发请求,假如网络
不稳定的话,服务器的数据可能会返回不回来。
(2)、数据量稍微有些大的时候也有可能出现卡顿的现
象。
(3)、站在使用者的角度,可能会浪费流量。
    当然如果出现上述情况的话,这时候“数据缓存”的重要性就体现出来了。

二、加上缓存之后分析如下:

获取数据的分析图:


请求过程分析图.png

      假设客户端内存中没有数据,硬盘中也没有数据,那么客户端向服务器第一次请求数据并且成功后,服务器返回数据之后的流程如下图。

数据缓存过程.png
      当服务器返回数据时候需要注意几点:
1.服务器返回的数据,我们肯定是会对其进行“解析”之后在进行显示,那么将数据缓存到硬盘的时候肯定缓存的是解析之后的数据。
2.此时的缓存情况是:内存缓存硬盘缓存中都有数据。
3.再次请求数据的时候会分为两种情况:
(1)、如果程序并没有被关闭,一直在运行的话,那么此时内存缓存硬盘缓存中都有数据。当我们此时在此请求数据时就直接可以从“内存缓存”中提取数据进行显示。
(2)、如果程序重新启动
  那么此时内存缓存已经消失,没有数据,硬盘缓存依旧存在,还有数据。如果此时再次请求数据,需要读取内存中缓存的数据。因为从硬盘缓存中读取数据后,内存缓存中又有数据了。
      至于iOS中的缓存机制大家可以参考这篇博客进行学习[http://blog.csdn.net/czkyes/article/details/51453420]

相关文章

网友评论

      本文标题:浅谈iOS中的数据缓存的重要性

      本文链接:https://www.haomeiwen.com/subject/gglhvxtx.html