【问题标题】:WebView ignore Cache policy on subsequent pagesWebView 忽略后续页面上的缓存策略
【发布时间】:2013-02-03 16:49:02
【问题描述】:

我注意到在我的 webView 中,我在发出请求时在 viewDidLoad 中设置了缓存策略,

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

缓存将仅在第一次运行,当我单击网页中的另一个按钮继续执行后续页面时,webView 会忽略缓存策略,使其仅在网页的第一页上加载更快.后续页面加载非常缓慢。

我该如何解决这个问题:让所有后续页面的加载速度与 webView 中第一个加载的页面一样快?

【问题讨论】:

  • 这是因为,您只创建了第一个具有缓存属性的 url。

标签: ios caching webview policy


【解决方案1】:

嗯,我想我现在已经找到了解决方案并回答了我自己的问题。好像可以放

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:120]; ]

的webView委托内
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

如果 navigationType 等于 UIWebViewNavigationTypeLinkClicked,则使用允许我设置缓存策略的方法发出新请求。

【讨论】:

  • 嗨,我知道这已经很老了,但是您如何覆盖 UIWebView 将缓存策略设置为“忽略本地缓存数据”以用于后续请求的行为?你是不是在调用 loadRequest: 新创建的请求后在方法中返回 NO ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-06
  • 2021-05-05
  • 2012-09-05
  • 2020-08-03
  • 2011-11-12
  • 2011-01-18
  • 1970-01-01
相关资源
最近更新 更多