实际上,我对此有不止一个问题......我对 NSURLCache 和 UIWebViews 还是很陌生,但我认为以某种方式掌握了基础知识。
无论如何,我能够成功地为我的 UIWebView 实现缓存(我认为)。我初始化了 NSURLCache。我的 UIWebView 使用 loadRequest: 方法加载其内容。我将拥有 UIWebView 的 ViewController 分配为委托。我还让 ViewController 实现了 NSURLConnectionDataDelegate。我实现了 connection:willCacheResponse: 方法只是为了在控制台中记录一条消息,以便我可以检查缓存是否完成。我还记录了当前的磁盘和内存使用情况。缓存后它会增加,所以我可以看到它确实有效。
但是,当我再次加载页面时,我认为请求会再次发送到服务器,因为正在调用 connection:didReceiveResponse: 和 connection:willCacheResponse 等连接委托方法。
我还想尝试使用 cachedResponseForRequest: 从缓存中获取 cachedResponse。我在 webViewDidFinishLoad: 中调用了这个方法,但它总是返回 null。缓存真的有用吗?
如何判断 WebView 是否从缓存中加载?我是否在滥用 cachedResponseForRequest:?另一方面,至少应该为缓存提供哪些适当的 Control-Cache 标头值?我正在对 google 的主页 URL 进行测试,它返回其 Cache Control 标头的私有值,但我可以看到缓存有效,因为 connection:willCacheResponse: 被调用。
请帮忙?