`

UIWebView3——离线缓存

    博客分类:
  • ios
阅读更多

NSURLCache

NSURLProtocol

 

NSURLRequestCachePolicy  指定缓存逻辑。URL加载系统提供了一个磁盘和内存混合的缓存,来相应网络请求。这个缓存允许一个应用减少对网络连接的依赖,并且增加性能。


   NSURLRequestUseProtocolCachePolicy = 0, 默认缓存策略。具体工作:如果一个NSCachedURLResponse对于请求并不存在,数据将会从源端获取。如果请求拥有一个缓存的响应,那么URL加载系统会检查这个响应来决定,如果它指定内容必须重新生效的话。假如内容必须重新生效,将建立一个连向源端的连接来查看内容是否发生变化。假如内容没有变化,那么响应就从本地缓存返回数据。如果内容变化了,那么数据将从源端获取

   NSURLRequestReloadIgnoringLocalCacheData = 1, URL应该加载源端数据,不使用本地缓存数据     

   NSURLRequestReloadIgnoringLocalAndRemoteCacheData =4, 本地缓存数据、代理和其他中介都要忽视他们的缓存,直接加载源数据

   NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData, 两个的设置相同

   NSURLRequestReturnCacheDataElseLoad = 2,   指定已存的缓存数据应该用来响应请求,不管它的生命时长和过期时间。如果在缓存中没有已存数据来响应请求的话,数据从源端加载。

   NSURLRequestReturnCacheDataDontLoad = 3, 指定已存的缓存数据用来满足请求,不管生命时长和过期时间。如果在缓存中没有已存数据来响应URL加载请求的话,不去尝试从源段加载数据,此时认为加载请求失败。这个常量指定了一个类似于离线模式的行为

   NSURLRequestReloadRevalidatingCacheData = 5 指定如果已存的缓存数据被提供它的源段确认为有效则允许使用缓存数据响应请求,否则从源段加载数据。


只有响应http和https的请求会被缓存。ftp和文件协议当被缓存策略允许的时候尝试接入源段。自定义的NSURLProtocol类能够保护缓存,如果它们被选择使用的话。



http://blog.sina.com.cn/s/blog_717fba110101dr8p.html

分享到:
评论

相关推荐

    ios-基于NSURLSession NSURLProtol的UIWebView离线缓存.zip

    基于NSURLSession NSURLProtol的UIWebView离线缓存 主要是使用苹果的黑魔法类:NSURLProtocol来对网络请求进行拦截,拦截后使用自定义的网络去加载数据后进行离线缓存。这样保证在没有网络的情况下,也能保证离线能...

    UIWebView离线缓存

    UIWebView不仅能够实时加载网络页面,还可以实现离线缓存功能,使得用户在没有网络连接时依然可以查看之前加载过的网页内容。这个特性对于提高用户体验,特别是对于那些在网络不稳定或者无网络环境下的应用来说,...

    UIWebView应用——自己动手写IOS浏览器

    【UIWebView应用——自己动手写iOS浏览器】 在iOS开发中,UIWebView是苹果提供的一款用于在应用程序内展示网页内容的组件。这篇博客“UIWebView应用——自己动手写IOS浏览器”将引导开发者创建一个简单的内置浏览器...

    [转] 为UIWebView实现离线浏览

    为了更可控地进行离线缓存,可以使用`shouldStartLoadWithRequest` delegate方法,拦截网络请求并决定是否从本地缓存中加载。 6. **自定义缓存策略**: 如果AppCache不满足需求,可以使用NSURLCache自定义缓存策略...

    UIWebView缓存网页

    通过这样的方式,我们可以实现UIWebView的离线缓存功能,使用户在没有网络的情况下也能访问之前加载过的网页。这在航班、地下铁等网络不稳定或不可用的场景下尤其有用,提高了应用的用户体验。同时,需要注意的是,...

    浅谈iOS UIWebView对H5的缓存功能

    iOS UIWebView 对 H5 的缓存功能详解 iOS UIWebView 对 H5 的缓存功能是 iOS 应用程序中非常重要的一个方面。 UIWebView 是 iOS 中的一个组件,主要用于加载和显示网页内容,而 H5 则是指 HTML5,一个用于构建网页...

    iOS UIWebView的缓存

    本文将深入探讨如何实现UIWebView的缓存功能,以确保离线状态下应用仍能正常运行。 首先,我们需要理解iOS中的缓存系统。iOS提供了URLCache类,这是一个用于处理HTTP请求的缓存系统。当使用UIWebView加载网页时,...

    iOS-UIWebview缓存并保证实时性

    然而,这种默认策略可能无法满足我们特定的缓存需求,比如在离线状态下仍然能展示之前加载过的页面,同时在网络恢复后又能更新最新的内容。 为了解决这个问题,我们可以创建一个自定义的URLProtocol,名为...

    UIWebView 离线浏览(iPhone源代码)

     实现 UIWebView 的离线浏览(缓存)功能。 作者说: 原理:将get请求的数据缓存在本地cache目录中,以后访问的时候直接从cache中获取数据。 备注:在初始化缓存的时候可以指定缓存的有效期时间长度,具体参看...

    IOS 离线浏览网页

    通过网页浏览时,讲缓存保存起来,若下次离线浏览该网页,则显示之前保存的数据;...本代码在http://code4app.com/ios/UIWebView离线缓存/53c39db6933bf07c388b49c8 的基础上面做小修改,希望能对大家有用

    ios-基于NSURLSession和NSURLProtocol的webView缓存.zip

    基于NSURLSession NSURLProtol的UIWebView离线缓存 主要是使用苹果的黑魔法类:NSURLProtocol来对网络请求进行拦截,拦截后使用自定义的网络去加载数据后进行离线缓存。这样保证在没有网络的情况下,也能保证离线能...

    ios WebView 页面缓存

    2. 使用Service Worker:WKWebView支持Service Worker,它可以实现更高级的离线缓存和数据存储,提供更流畅的离线体验。 3. 利用HTTP首部控制:通过设置适当的"Cache-Control"、"Pragma"、"ETag"等首部字段,指示...

    网页缓存到本地.zip

    4. **Service Worker**:在支持的服务员,Service Worker允许开发者创建后台脚本,处理网络请求,实现离线缓存和预加载等功能。不过,iOS的WKWebView目前不支持Service Worker。 为了实现自定义的缓存逻辑,开发者...

    UIWebview使用缓存并且保证实时性

    UIWebview中提供的缓存策略 NSURLRequestUseProtocolCachePolicy 缓存策略定义在 web 协议实现中,用于请求特定的URL。是默认的URL缓存策略。 NSURLRequestReloadIgnoringLocalCacheData 从服务端获取数据,忽略...

    NSURLCache让本地数据来代替远程UIWebView请求

    3. 监听缓存行为:虽然`UIWebView`默认会处理`NSURLCache`,但我们可以通过实现`UIWebViewDelegate`中的`webView(_:didReceiveResponse:)`方法,来获取关于是否使用了缓存的信息。 ```swift func webView(_ webView:...

    UIWebViewDemo

    3. **处理导航**: `UIWebView`提供了一些导航相关的代理方法,如`webView(_:shouldStartLoadWith:)`,可以用来决定是否开始加载请求,以及`webViewDidFinishLoad(_:)`,表示网页加载完成。 4. **返回上页功能**: 要...

    Cocos2dx中UIWebView替换为WKWebView

    然而,随着Apple对App Store审核政策的调整,使用UIWebView的App将不再被接受,因为Apple已经将其列为弃用API。在2020年,Apple明确表示,自2020年12月起,所有新提交的App和更新都必须移除UIWebView的使用,转而...

    iPhone开发之UIWebView示例程序

    3. **加载网页内容**:UIWebView提供了两种加载网页内容的方式: - 使用URL加载:通过调用`[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.example.com"]]];`可以加载指定...

Global site tag (gtag.js) - Google Analytics