美文网首页
UIWebView缓存基础知识

UIWebView缓存基础知识

作者: 一个脱离了高级趣味的人e | 来源:发表于2016-11-25 09:26 被阅读148次

    第一.NSURLRequest的缓存设置

    +(id)initWithURL:(NSURL*)URLcachePolicy:(NSURLRequestCachePolicy)cachePolicytimeoutInterval:(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:iOSprior 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缓存基础知识

          本文链接:https://www.haomeiwen.com/subject/pnmipttx.html