NSURLRequestCachePolicy—iOS缓存策略
2016-02-16 15:03
260 查看
NSURLRequestCachePolicy指定缓存逻辑。URL加载系统提供了一个磁盘和内存混合的缓存,来相应网络请求。这个缓存允许一个应用减少对网络连接的依赖,并且增加性能。使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,是程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来,减少对同一个url多次请求。
NSURLRequestUseProtocolCachePolicy = 0, 默认缓存策略。具体工作:如果一个NSCachedURLResponse对于请求并不存在,数据将会从源端获取。如果请求拥有一个缓存的响应,那么URL加载系统会检查这个响应来决定,如果它指定内容必须重新生效的话。假如内容必须重新生效,将建立一个连向源端的连接来查看内容是否发生变化。假如内容没有变化,那么响应就从本地缓存返回数据。如果内容变化了,那么数据将从源端获取NSURLRequestReloadIgnoringLocalCacheData = 1, URL应该加载源端数据,不使用本地缓存数据
NSURLRequestReloadIgnoringLocalAndRemoteCacheData =4, 本地缓存数据、代理和其他中介都要忽视他们的缓存,直接加载源数据
NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData, 两个的设置相同
NSURLRequestReturnCacheDataElseLoad = 2, 指定已存的缓存数据应该用来响应请求,不管它的生命时长和过期时间。如果在缓存中没有已存数据来响应请求的话,数据从源端加载。
NSURLRequestReturnCacheDataDontLoad = 3, 指定已存的缓存数据用来满足请求,不管生命时长和过期时间。如果在缓存中没有已存数据来响应URL加载请求的话,不去尝试从源段加载数据,此时认为加载请求失败。这个常量指定了一个类似于离线模式的行为
NSURLRequestReloadRevalidatingCacheData = 5 指定如果已存的缓存数据被提供它的源段确认为有效则允许使用缓存数据响应请求,否则从源段加载数据。
只有响应http和https的请求会被缓存。ftp和文件协议当被缓存策略允许的时候尝试接入源段。自定义的NSURLProtocol类能够保护缓存,如果它们被选择使用的话。
小结:NSURLRequestReturnCacheDataDontLoad是用于离线模式的,我为了能让用户在离线下面阅读,我就设计了当没有网络的时候的策略为NSURLRequestReturnCacheDataDontLoad。
相关文章推荐
- IOS 导航页UIScrollView+UIPageControl
- Java string 类型与其他类型的转化(string.valueof())
- [UIScreen mainScreen].bounds.size 在iPhone 6和iPhone 6 plus上获取到的尺寸不对
- Entity Framework中IQueryable, IEnumerable, IList的区别[转]
- Android-节日短信送祝福(UI篇:2-展示节日列表的Framgment的创建)
- 334. Increasing Triplet Subsequence
- leetcode Increasing Triplet Subsequence
- [原创]SOUI GDI+渲染引擎下的字体特效,抛砖引玉
- ignoring file ***missing required architecture armv7in file **** ignoring file ***missing required
- fuel7.0 openstack webui 默认密码查看
- UITextView头文件学习
- UIBezierPath精讲
- Enumerable.SequenceEqual
- UIViewController中所有的生命周期方法和调用时机
- Uncaught TypeError: Cannot read property 'value' of null
- Spark UI (基于Yarn) 分析与定制
- Android-节日短信送祝福(UI篇:1-主布局的基本实现)
- UICollectionView 简单使用
- 使用Core Animation优化UIKit性能
- poj 1458 Common Subsequence