【发布时间】:2015-10-28 04:53:15
【问题描述】:
在我的混合应用程序中,我将网络资源命名为 main.css?{timestamp-file-was-modified},并为它们提供长达一年的 max-age 缓存标头,以便客户端或多或少地永久保留它。
然而,在我的 iOS 应用程序中似乎发生的事情是,UIWebView 在应用程序的生命周期内尊重缓存标头,即当我加载一个还包含 main.css?{same-timestamp} 的新页面时,它甚至不会尝试重新验证因为它知道它在缓存中有正确的文件。 但是,在重新启动应用程序时(在被杀死或设备关闭后)UIWebView 会再次获取所有资源,而忽略缓存。我已经通过 Charles Proxy 运行它来验证是否是这种情况。
我查看了 SQlite cache.db 内部,发现 main.css?{same-timestamp} 在那里,但 UIWebView 仍然不会从缓存中加载它,导致初始页面加载速度明显慢于可能.
我已经在装有 iOS 8.4 的 iPhone 和装有 iOS 8.2 的 iPad 上进行了尝试。结果一样。
有什么想法吗?
【问题讨论】:
标签: ios caching ios8 uiwebview persistent-storage