WebView中设置缓存的代码:
WebSettings settings = webView.getSettings();
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
// 开启 DOM storage API 功能
settings.setDomStorageEnabled(true);
// 开启 database storage API 功能
settings.setDatabaseEnabled(true);
settings.setAppCacheEnabled(true);
LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据。
LOAD_DEFAULT: 根据cache-control或者Last-Modified决定是否从网络上取数据。
LOAD_CACHE_NORMAL: API level 17中已经废弃,从API level 11开始作用同LOAD_DEFAULT模式
LOAD_NO_CACHE: 不使用缓存,只从网络获取数据。
LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。本地没有缓存时才从网络上获取。
LOAD_DEFAULT详解
浏览器缓存机制是通过HTTP协议Header里的Cache-Control(或Expires)和Last-Modified(或 Etag)等字段来控制文件缓存的机制
在浏览器返回地址,返回的header中会携带如下一个或多个参数
Cache-Control:max-age=300
Expires: Thu, 31 Dec 2018 23:55:55 GMT