美文网首页
Android WebView缓存

Android WebView缓存

作者: dhhuanghui | 来源:发表于2019-07-27 15:59 被阅读0次

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

Last-Modified:Wed, 28 Sep 2018 09:24:35 GMT

这个字段表明该文件在服务端最后修改的时间,在webView发送请求的时候,会以If-Modified-Since这个字段把这个时间带上If-Modified-Since: Wed, 28 Sep 2018 09:24:35 GMT,服务器接收到请求后,会把文件的Last-Modified时间和这个时间对比,如果时间没变,那么浏览器将返回304 Not Modified给浏览器,有改变,则返回status code=200


image.png
image.png

ETag:”sjiuwiiu-778”

这是文件的特征串。功能同上面的Last-Modified是一样的。只是在浏览器下次请求时,ETag是作为Request Header中的If-None-Match:"57eb8c5c-129"字段传到服务器,服务器和最新的文件特征串对比,如果相同那么返回304 Not Modified,不同则返回200 OK

相关文章

  • 2018-03-11

    WebView缓存 Android WebView缓存可以分为页面缓存和数据缓存页面缓存是指加载一个网页时htm...

  • Android WebView缓存

    当我们加载Html时候,会在我们data/应用package下生成database与cache两个文件夹:我们请求...

  • Android WebView缓存

    WebView中设置缓存的代码: LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据。LOAD_DE...

  • 面试问题

    1.https 对称加密2.图片缓存失效3.webview 安全漏洞 Android WebView的Js对象注入...

  • TRA-2

    TipsAndroid播放音乐可以用soundPool Review 4、Android WebView自带的缓存...

  • android 读取WebView缓存及清理WebView缓存

    WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即appcache)。 1.缓存...

  • android webview缓存访问优化

    为了让WebView访问快,一般都是用缓存技术!这里简单介绍下: 其实http协议有自身的缓存机制,android...

  • android WebView离线缓存

    if (NetworkUtil.isConnected(mContext)) mWebView.getSettin...

  • Android webView 缓存处理

    一 缓存模式 使用方式 二 清理缓存 1,页面缓存: >指加载一个网页时的html、JS、CSS等页面或者资源...

  • Android WebView 清理缓存

网友评论

      本文标题:Android WebView缓存

      本文链接:https://www.haomeiwen.com/subject/izderctx.html