关于Webview缓存和提速

默认情况下的Webview缓存策略:

1、如果返回头中有Cache-Control及Last-Modified:缓存时间内不会发送请求;只有当缓存时间失效(结合Cache-Control和Date进行计算),Last-Modified会被发送给服务器(If-Modified-Since头),服务器根据If-Modified-Since头判断返回304还是200。
2、返回头中有Cache-Control但是无Last-Modified:缓存时间内不会发送请求;当缓存时间失效(结合max-age和Date进行计算),服务器直接返回200。
3、当有Cache-Control和Expires同时存在,Expires将会被忽略。
4、Webview会忽略ETag。
结论:通过Cache-Control和Last-Modified对缓存进行控制,比WebSettings.LOAD_CACHE_ELSE_NETWORK会更加灵活。

Webview提速:

1、要么缓存(静态资源、接口缓存,动态资源、接口不缓存),这是普适方案;
2、要么预加载(单个webview预加载,类似1元夺宝App的发现那样;也可以两个Webview预加载,一个加载缓存数据,一个请求网络数据,当网络返回和本地缓存速度差不多的时候效果可能不会太明显,具体问题具体分析),非普适方案,依赖使用场景。
3、使用webview不得不接受速度慢的事实,和原生没法比。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容