Reputation: 166
I have a UIWebView object, with the caching-policy specified as: NSURLRequestReloadIgnoringLocalCacheData
This should ignore whatever objects are in the local cache and retrieve the latest version of a site from the web.
However, after the first load of the site (ten resources in trace, HTTP GET), all subsequent loads of the site only retrieve a small subset of resources (three resources in trace, HTTP GET). The images all appear to be loaded from some local source.
I have confirmed that my sharedURLCache has a memory usage of 0 bytes, and a disk usage of 0 bytes. Whenever the process starts fresh, the full version of the site is retrieved again. This leads me to believe that these resources are being stored in an in-memory cache, but as I noted before, [[NSURLCache sharedURLCache] currentMemoryUsage] returns 0.
I have also tried explicitly removing the cached response for my request, but this seems to have no effect. What gives?
Edit: Furthermore, the NSHTTPCookieStorage is cleared before each load, and I can confirm that the subsequent loads retrieve four resources now instead of three. The caching issue persists regardless of the change.
Upvotes: 3
Views: 3304
Reputation: 71
Have you tried appending a timestamp with the current time interval to the URL as a querystring parameter, e.g.
http://www.myhost.com/page.html?timestamp=123456789.0
I don't know if this works, it depends on how the cache is implemented, but it might be worth giving it a try; it's a bit hacky, but I've used this a long time ago in a galaxy far far away when doing Flash applets. I'm having the same problems now, and I've even tried using:
[[NSURLCache sharedURLCache] removeCachedResponseForRequest: request];
After the UIWebView has finished loading.
Upvotes: 2