0

我想用一个简单的 UIWebView构建一个原生 iOS 应用程序,但缓存所有通过网络的东西。

对于第一个镜头,我将包含一个使缓存无效的按钮,并且在应用程序的下一次启动时,缓存将被重新填充。稍后我将包含对服务器的调用,然后它会告诉我使缓存无效并重新填充缓存。

我有以下设置:

  • 一个加载 index.html 文件的 UIWebView
  • index.html 包含一些 CSS 和一些 JavaScript
  • 进一步的代码(JS/CSS)通过 AJAX 调用加载
  • 尝试使用Rob Napier的RNChachingURLProtocol它只缓存 URL 请求(在 index.html 中声明的 CSS 和 Javascript),但没有通过 AJAX 加载的 CSS 和 JS。

是否有任何库也能够缓存 AJAX 请求?

4

2 回答 2

0

我认为您的问题是这些 ajax 调用正在获得带有 http 标头参数的响应,这些参数指定它不能被缓存。您可以创建一个覆盖这些参数的自定义 NSUrlCache。NSUrlCache 的描述可以在http://nshipster.com/nsurlcache/找到,示例可以在http://github.com/evermeer/EVURLCache

于 2013-05-30T09:34:19.603 回答
0

问题解决了。

通过阅读此http://nshipster.com/nsurlcache/(感谢 Edwin!)并通过 WireShark 连接到 iOS 模拟器上的应用程序,我经历了以下情况:

Webview 会自动缓存大部分数据。我的初始请求之后是向服务器发出的160 个 HTTP 请求

进一步的请求是大约 25 个 HTTP 请求。

因此,在我的情况下,我不需要任何进一步的库来处理缓存(几乎)所有内容的特定用例,在某些时候删除所有缓存的内容并重新填充。

于 2013-05-31T11:24:27.963 回答