When using NSURLRequest on the iPhone, what are the real world performance differences between the various NSURLRequestCachePolicy settings? I am specifically interested in the cache policy's effect on the the user's perception of the speed at which UIWebView pages display.
I have been using the default NSURLRequestCachePolicy
but I think that perhaps NSURLRequestReloadRevalidatingCacheData could be best for most cases especially when going back to a previous page.
If you've used various cache policies under real-world conditions, which policy proved optimum in a particular circumstance? What policy provides the best overall performance over the three different types of iPhone connections, wi-fi, 3G and Edge? Does the cache policy even have any significant effect on the user's perception of page loading speed or should I be looking elsewhere to optimize UIWebView's display time?
There seems to be a consensus that UIWebView appears to ignore the cache settings on any NSURLRequest given it. I do not have complete confidence that this is the final answer but barring the time to do some extensive testing, I cannot gainsay it. Therefore, I am accepting the highest rated answer. However, I would advise that you take the answers with a grain of salt if the matter is of importance to your project. -- TechZen.
I don't think this will make any difference on your UIWebView loading times. UIWebView is built on WebKit, and they're not using NSURLConnection
internally (they are at a much lower level and use CFNetwork
directly).
This is probably not what you want to hear, but probably the best way to speed up UIWebView loading time is to not use a UIWebView. Rendering web pages is pretty CPU-intensive. In fact, MobileSafari is actually mostly CPU-bound, not network-bound -- notice how long it takes it to fill in that checkerboard pattern when scrolling, for example. For really fast, quickly loading content, it's best to create a native interface in Cocoa.
I a few hours for a project trying to get a UIWebView
to cache pages I was loading. It proved impossible from the application side without storing the files locally. It seems that UIWebView
ignores the NSURLRequestCachePolicy
completely.
Yahoo! has some info on the iPhone's caching behaviour.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With