3

我有一个 UIWebView 对象,缓存策略指定为: NSURLRequestReloadIgnoringLocalCacheData

这应该忽略本地缓存中的任何对象并从 Web 检索站点的最新版本。

但是,在站点的第一次加载(跟踪中的十个资源,HTTP GET)之后,站点的所有后续加载仅检索一小部分资源(跟踪中的三个资源,HTTP GET)。这些图像似乎都是从某个本地来源加载的。

我已经确认我的 sharedURLCache 的内存使用量为 0 字节,磁盘使用量为 0 字节。每当该过程重新开始时,就会再次检索该站点的完整版本。这让我相信这些资源存储在内存缓存中,但正如我之前提到的,[[NSURLCache sharedURLCache] currentMemoryUsage] 返回 0。

我也尝试过明确删除我的请求的缓存响应,但这似乎没有效果。是什么赋予了?

编辑:此外,NSHTTPCookieStorage 在每次加载之前都会被清除,我可以确认后续加载现在检索四个资源而不是三个。无论更改如何,缓存问题仍然存在。

4

1 回答 1

2

您是否尝试将具有当前时间间隔的时间戳作为查询字符串参数附加到 URL,例如

http://www.myhost.com/page.html?timestamp=123456789.0

我不知道这是否有效,这取决于缓存的实现方式,但可能值得一试;这有点hacky,但我很久以前在遥远的银河系做Flash小程序时使用过它。我现在遇到了同样的问题,我什至尝试过使用:

[[NSURLCache sharedURLCache] removeCachedResponseForRequest: request];

UIWebView 完成加载后。

于 2010-07-26T21:07:27.960 回答