博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSURLRequestCachePolicy 缓存策略
阅读量:6426 次
发布时间:2019-06-23

本文共 2136 字,大约阅读时间需要 7 分钟。

1> NSURLRequestUseProtocolCachePolicy = 0, 默认的缓存策略, 如果缓存不存在,直接从服务端获取。如果缓存存在,会根据response中的Cache-Control字段判断下一步操作,如: Cache-Control字段为must-revalidata, 则询问服务端该数据是否有更新,无更新的话直接返回给用户缓存数据,若已更新,则请求服务端.2> NSURLRequestReloadIgnoringLocalCacheData = 1, 忽略本地缓存数据,直接请求服务端.3> NSURLRequestIgnoringLocalAndRemoteCacheData = 4, 忽略本地缓存,代理服务器以及其他中介,直接请求源服务端.4> NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData5> NSURLRequestReturnCacheDataElseLoad = 2, 有缓存就使用,不管其有效性(即忽略Cache-Control字段), 无则请求服务端.6> NSURLRequestReturnCacheDataDontLoad = 3, 死活加载本地缓存. 没有就失败. (确定当前无网络时使用)7> NSURLRequestReloadRevalidatingCacheData = 5, 缓存数据必须得得到服务端确认有效才使用(貌似是NSURLRequestUseProtocolCachePolicy中的一种情况)Tips: URL Loading System默认只支持如下5中协议: 其中只有http://和https://才有缓存策略.(1) http://(2) https://(3) ftp://(4) file://(5) data://使用方法:-(void) downloadURL:(NSURL *)paramURL{NSURLCache *urlCache = [NSURLCache sharedURLCache];[urlCache setMemoryCapacity:1*1024*1024];NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:paramURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0f];NSCachedURLResponse *response =[urlCache cachedResponseForRequest:request];if (response != nil){    FLOG(@"Cached response exists. Loading data from cache...");    [request setCachePolicy:NSURLRequestReturnCacheDataDontLoad];}UIWebView *webView = [[UIWebView alloc] initWithFrame:self.bounds];webView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;webView.scalesPageToFit = YES;webView.backgroundColor = [UIColor whiteColor];webView.delegate = self;[webView loadRequest:request];_progressProxy = [[NJKWebViewProgress alloc] init];_progressProxy.webViewProxyDelegate = self;_progressProxy.progressDelegate = self;webView.delegate  = _progressProxy;CGFloat progressBarHeight = 2.f;CGRect barFrame = CGRectMake(0,0, kScreenWidth, progressBarHeight);_progressView = [[NJKWebViewProgressView alloc] initWithFrame:barFrame];_progressView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;self.webView = webView;[self addSubview:self.webView];[self addSubview:_progressView];

}

转载地址:http://gnfga.baihongyu.com/

你可能感兴趣的文章
php 使用phpqrcode类生成带有logo的二维码 使logo不失真(透明)
查看>>
unity3d anmation 基本用法
查看>>
[CC]点云密度计算
查看>>
强制类型转换问题
查看>>
viewPager 的可滑动 Title
查看>>
程序出错Program received signal:SIGKILL
查看>>
CATransition 动画处理视图切换
查看>>
[转载] 高等应用数学问题的matlab求解——第3章 微积分问题的计算机求解
查看>>
笔记:2016-6-13
查看>>
【转载】在线学习(Online Learning)
查看>>
LNMP状态管理命令
查看>>
大整数比较大小
查看>>
C++ 指定路径文件夹存在与否查询及文件夹创建
查看>>
css常用左右布局方案整理
查看>>
八大排序算法的Java实现
查看>>
IDEA+Maven+Tomcat构建项目流程
查看>>
java 线程机制
查看>>
数据是重要的战略资源,数据同样是产品非常重要的组成部分。淘宝对中国最大的贡献,不只是方便了老百姓购物,而是把中国消费者的消费习惯数据慢慢沉淀下来。...
查看>>
Leetcode Find Minimum in Rotated Sorted Array
查看>>
Python接口测试-使用requests模块发送post请求
查看>>