首页 > Web开发 > 详细

UIWebView缓存基础知识

时间:2014-04-12 12:50:50      阅读:597      评论:0      收藏:0      [点我收藏+]

第一. NSURLRequest的缓存设置

- (id)initWithURL:(NSURL *)URL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval;

cachePolicy表示缓存策略

1、   NSURLRequestUseProtocolCachePolicy = 0,

 默认策略,使用缓存

2.NSURLRequestReloadIgnoringLocalCacheData = 1,

忽略本地缓存

3.NSURLRequestReturnCacheDataElseLoad = 2,

如果有缓存,不管过期时间优先使用本地缓存,如果没有本地缓存,才从原地址下载

4. NSURLRequestReturnCacheDataDontLoad = 3

只使用缓存,如果没有匹配的缓存则报告离线模式,而不会从网上load数据

第二、NSURLCache 

1. 初始化相关的几个方法:sharedURLCache;setSharedURLCache;initWithMemoryCapacity

sharedURLCache方法返回一个NSURLCache实例。

默认情况下,内存是4M,4* 1024 * 1024;Disk为20M,20 * 1024 * 1024;路径在(NSHomeDirectory)/Library/Caches/(current application name, [[NSProcessInfo processInfo] processName])

setSharedURLCache可以通过这个方法来改变默认的NSURLCache。通过initWithMemoryCapacity来定制自己的NSURLCache。

2.常用的几个函数:

//Returns the NSCachedURLResponse stored in the cache with the given request.

(NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request;

//Stores the given NSCachedURLResponse in the cache using the given request.

- (void)storeCachedResponse:(NSCachedURLResponse *)cachedResponse forRequest:(NSURLRequest *)request;

// Removes the NSCachedURLResponse from the cache that is stored using the given request. 

(void)removeCachedResponseForRequest:(NSURLRequest *)request;

//Clears the given cache, removing all NSCachedURLResponse objects that it stores.


- (void)removeAllCachedResponses;

3. property方法

- (NSUInteger)memoryCapacity;

- (NSUInteger)diskCapacity;

- (void)setMemoryCapacity:(NSUInteger)memoryCapacity;

第三、 NSCachedURLResponse

系统缓存对象,保持了缓存对象的个性和特性。

1. NSURLCacheStoragePolicy 缓存策略有三种

enum
{
    NSURLCacheStorageAllowed,
    NSURLCacheStorageAllowedInMemoryOnly,
    NSURLCacheStorageNotAllowed,
};


NSURLCacheStorageAllowed

Specifies that storage in NSURLCache is allowed without restriction.

Important: iOS prior to version 5 ignores this cache policy, and instead treats it asNSURLCacheStorageAllowedInMemoryOnly.


  可以看出,iOS设备上NSURLCache默认只能进行内存缓存。

2. 构造方法

- (id)initWithResponse:(NSURLResponse *)response data:(NSData *)data;

- (id)initWithResponse:(NSURLResponse *)response data:(NSData *)data userInfo:(NSDictionary *)userInfo storagePolicy:(NSURLCacheStoragePolicy)storagePolicy;

3. Open API

- (NSURLResponse *)response;

- (NSData *)data;

- (NSDictionary *)userInfo;

- (NSURLCacheStoragePolicy)storagePolicy;


UIWebView缓存基础知识,布布扣,bubuko.com

UIWebView缓存基础知识

原文:http://blog.csdn.net/richard_rufeng/article/details/23452683

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!