文档章节

NSURLRequestCachePolicy缓存

OSMaker_-
 OSMaker_-
发布于 2016/03/31 23:44
字数 312
阅读 50
收藏 1

如下是苹果原有的枚举类型:

typedef NS_ENUM(NSUInteger, NSURLRequestCachePolicy)
{
    NSURLRequestUseProtocolCachePolicy = 0,

    NSURLRequestReloadIgnoringLocalCacheData = 1,
    NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4, // Unimplemented
    NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,

    NSURLRequestReturnCacheDataElseLoad = 2,
    NSURLRequestReturnCacheDataDontLoad = 3,

    NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented
};

下面我们一一解释他们的意义:

使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,是程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来,减少对同一个url多次请求。

内存缓存我们可以使用sdk中的NSURLCache类。NSURLRequest需要一个缓存参数来说明它请求的url何如缓存数据的,我们先看下它的CachePolicy类型。

1、NSURLRequestUseProtocolCachePolicy       NSURLRequest默认的cache policy,使用Protocol协议定义。

2、NSURLRequestReloadIgnoringCacheData    忽略缓存直接从原始地址下载。
3、NSURLRequestReturnCacheDataElseLoad    只有在cache中不存在data时才从原始地址下载。
4、NSURLRequestReturnCacheDataDontLoad  只使用cache数据,如果不存在cache,请求失败;用于没有建立网络连接离线模式;
5、NSURLRequestReloadIgnoringLocalAndRemoteCacheData    忽略本地和远程的缓存数据,直接从原始地址下载,与NSURLRequestReloadIgnoringCacheData类似。
6、NSURLRequestReloadRevalidatingCacheData      验证本地数据与远程数据是否相同,如果不同则下载远程数据,否则使用本地数据。



© 著作权归作者所有

OSMaker_-
粉丝 0
博文 38
码字总数 6775
作品 0
郑州
程序员
私信 提问
iOS开发中的数据缓存

缓存的实现: 在iOS开发中缓存经常用 来实现, 这个类提供了大量的操作缓存的方法. NSURLCache常见的方法: (1)获得全局缓存对象(没必要手动创建)NSURLCache *cache = [NSURLCache sharedU...

hell03W
2016/06/24
29
0
iOS中URL缓存策略-NSURLRequestCachePolicy

最近由于对NSURLRequestCachePolicy设置不当,导致了版本中出现一些bug,特此对NSURLRequestCachePolicy进行了一些研究 的定义如下 NSURLRequestUseProtocolCachePolicy 默认的缓存策略,其行...

HK_Hank
2016/08/16
0
0
NSURLRequestCachePolicy 缓存策略

NSURLRequestCachePolicy 缓存策略 1> NSURLRequestUseProtocolCachePolicy = 0, 默认的缓存策略, 如果缓存不存在,直接从服务端获取。如果缓存存在,会根据response中的Cache-Control字段判...

大灰狼wow
2015/11/19
30
0
UIWebView缓存基础知识

第一. NSURLRequest的缓存设置 - (id)initWithURL:(NSURL *)URL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval; cachePolicy表示缓存......

海二少
2016/05/24
28
0
WebView自动缓存-清除缓存

iOS的Webview加载HTML时会自动缓存JS、CSS等文件,当下次加载HTML时会根据请求的缓存策略是否使用缓存本地的JS和CSS,如果本地有缓存,那么直接返回本地资源(判断是否过期);如果没有本地缓存...

一誠
04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
33分钟前
3
0
CSS--属性

一、溢出 当内容多,元素区域小的时候,就会产生溢出效果,默认是纵向溢出 横向溢出:在内容和容器之间再套一层容器,并且内部容器要比外部容器宽 属性:overflow/overflow-x/overflow-y 取值...

wytao1995
51分钟前
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
6
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0
jenkins 插件下载加速最终方案

推荐做法 1、告诉jenkins 我哪些插件需要更新 jenkins插件清华大学镜像地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 1.进入jenkins系统管理 2.进入插件管...

vasks
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部