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

我一直用默认的 NSURLRequestCachePolicy 但我认为 NSURLRequestReloadRevalidatingCacheData 对于大多数情况来说可能是最好的,尤其是在返回上一页时。

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

更新:

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

有帮助吗?

解决方案

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

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

其他提示

我花了几个小时的时间来尝试一个项目 UIWebView 缓存我正在加载的页面。从应用程序端来看,如果不将文件存储在本地,这是不可能的。看起来 UIWebView 忽略 NSURLRequestCachePolicy 完全地。

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

我只是对 WebKit 源代码进行了 grep,并没有发现任何使用 -[NSURLRequest cachePolicy].

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top