分别缓存两个webview

时间:2016-04-26 09:43:44

标签: ios uiwebview cache-control

我的应用程序中有两个uiwebviews。一个是浏览器webview,另一个是屏幕保护程序webview。我单独缓存两个webview,并在返回主页时清除浏览器webview的缓存并保持屏幕保护程序webview的缓存不变。是否有可能以及如何做到这一点?

提前致谢。

1 个答案:

答案 0 :(得分:0)

是的,只有在两种情况中的任何一种情况下才有可能:

第一种方式。条件:您可以根据它们来自的域(更容易的IMO)来区分请求

  1. 编写自定义NSURLCache子类并将其设置为sharedUrlCache。在那里,记录所有正在缓存的请求。库存缓存只能找到给定特定请求的缓存响应,但您需要向clearAllCachedRequestsForDomain()添加方法。
  2. 第二种方式。条件:你没有ajax调用/嵌入式iframe继续

      在您的webview委托中
    1. ,实现shouldStartLoadWithRequest并保留数组请求,以便稍后(您的缓存)可以区分请求的来源 =>你现在有2个数组,每个webview的请求

    2. 当你想清除一个webview的缓存而不是另一个调用NSURLCache.sharedURLCache().removeCachedResponseForRequest时,要传递你要清理的数组的元素! =>您使用标准缓存并仅从一个webview中删除请求

    3. 注意:如果webview1& webview2不共享公共请求数据。 (E.G.如果请求的所有URL都不同:D)如果请求“重叠”,则需要使用自定义NSURLCache子类为请求保留两个单独的缓存! (也可能!)