【发布时间】:2014-02-21 12:19:48
【问题描述】:
我有一个单页 web 应用程序,它显示在 Android WebView (Android Jelly Bean) 中。这是一个不错的大小,所以我想尽可能多地利用缓存。
如果应用通过 HTTP 提供服务,缓存会填充到大约 8 兆,并且在应用重新启动时,网络内容几乎会立即从缓存中加载(未观察到网络流量)。
但是,如果应用程序通过 HTTPS 提供服务,则仅使用一小部分缓存(几百 K),并且在应用程序重新启动时,所有 Web 资产(JS / CSS 等)都从再次服务器。由于我没有根设备并且文件看起来已被重命名(例如 webviewCacheChromium/data_0 等),因此很难准确查看正在缓存的文件。
我尝试设置 'Cache-Control: max-age' 响应标头(因为我相信这会在旧版浏览器中强制使用 https 缓存),但没有任何区别。
我找不到任何暗示默认情况下 WebView 不会缓存 https 内容的信息。我相信大多数现代浏览器都是这样运行的——我希望 Android WebView 也能做到这一点。
我在这里遗漏了什么吗?是否需要告知 WebView 缓存 https 内容?
提前致谢,
尼尔。
【问题讨论】: