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?
Update:
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
NSURLConnectioninternally (they are at a much lower level and useCFNetworkdirectly).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.