iOS缓存Cache初步认识

为什么需要缓存?

  1. 同一个URL请求多次,浪费流量。


    iOS缓存Cache初步认识_第1张图片
    同一个URL请求多次.png
  2. App离线也能查看

  3. 加快程序响应速度,提升用户体验。如果缓存中有数据,直接就用了,不会访问网络


    iOS缓存Cache初步认识_第2张图片
    取缓存数据,加快响应速度.png
  4. 首次使用,没有网络数据,不至于空页面,预先加载一些内容

iOS开发网络篇—数据缓存

怎么设计?

iOS缓存Cache初步认识_第3张图片
读缓存.jpeg
iOS缓存Cache初步认识_第4张图片
写缓存.jpeg
iOS缓存Cache初步认识_第5张图片
网络返回.png

iOS缓存类的设计

有系统自带的吗?

  • NSCache和NSURLCache是系统自带的缓存

  • NSCache 是苹果提供的一个简单的内存缓存,它有着和 NSDictionary 类似的 API,不同点是它是线程安全的,并且不会 retain key。在AFNetworking中,使用它来作为图片缓存。

  • NSURLCache是基于 SQLite 数据库的磁盘缓存。

  • POST请求不能被缓存,只有 GET 请求能被缓存。

  • HTTP协议deresponse头中的cache-control字段public,max-age=5,表示缓存所有内容,缓存5秒失效

  • 借助ETag或Last-Modified判断文件缓存是否有效
    Last-Modified。

  • 如果资源没更新,服务器响应304,客户端使用缓存。有数据返回的响应200

  • AFNetworking支持使用NSCache和NSURLCache作为网络缓存方案。

iOS网络缓存扫盲篇--使用两行代码就能完成80%的缓存需求

NSURLCache

NSCache介绍

选哪个第三方库?

  • 和YYMode一样,YYCache作者写了一篇非常不错的介绍文章。YYCache 设计思路

  • 源码地址YYCache

  • YYKit系列之——YYCache使用

  • YYCache终结篇

你可能感兴趣的:(iOS缓存Cache初步认识)