11

在 iPhone 上使用NSURLRequest时,各种NSURLRequestCachePolicy设置之间的实际性能差异是什么?我对缓存策略对用户感知 UIWebView 页面显示速度的影响特别感兴趣。

我一直在使用默认值NSURLRequestCachePolicy,但我认为 NSURLRequestReloadRevalidatingCacheData 可能最适合大多数情况,尤其是在返回上一页时。

如果您在实际条件下使用了各种缓存策略,那么哪种策略在特定情况下被证明是最佳的?哪种策略可在三种不同类型的 iPhone 连接(wi-fi、3G 和 Edge)上提供最佳整体性能?缓存策略对用户对页面加载速度的感知是否有任何显着影响,还是我应该寻找其他地方来优化 UIWebView 的显示时间?

更新:

似乎有一个共识,即 UIWebView 似乎忽略了给定它的任何 NSURLRequest 上的缓存设置。我不完全相信这是最终答案,但除非有时间进行一些广泛的测试,否则我不能否认它。因此,我接受评分最高的答案。但是,如果这件事对您的项目很重要,我建议您对答案持保留态度。——TechZen。

4

3 回答 3

3

我认为这不会对您的 UIWebView 加载时间产生任何影响。UIWebView 是基于 WebKit 构建的,它们并没有在NSURLConnection内部使用(它们处于低得多的级别并CFNetwork直接使用)。

这可能不是您想听到的,但加快 UIWebView 加载时间的最佳方法可能是不使用 UIWebView。渲染网页是相当消耗 CPU 的。事实上,MobileSafari 实际上主要受 CPU 限制,而不是网络限制 - 例如,请注意在滚动时填充该棋盘格图案需要多长时间。为了真正快速、快速地加载内容,最好在 Cocoa 中创建一个原生界面。

于 2010-02-19T18:45:46.480 回答
2

我花了几个小时来完成一个尝试UIWebView缓存我正在加载的页面的项目。如果不将文件存储在本地,从应用​​程序方面证明是不可能的。似乎完全UIWebView忽略了NSURLRequestCachePolicy

雅虎!有一些关于 iPhone 缓存行为的信息。

于 2010-02-22T18:23:14.557 回答
0

我只是在 WebKit 源代码上做了一个 grep,并没有发现-[NSURLRequest cachePolicy].

于 2010-02-22T18:17:55.333 回答