Android和iOS关于WebView(UIWebView)缓存的看法

这里写图片描述

1.首先判断是否有网络,若没有网络使用NSURLRequestReturnCacheDataDontLoad
也就是说,已经存在的缓存数据用于请求返回,不管他的过期日期和已经存在了多久,若没有请求对应的缓存数据,不要去数据源读取,该请求被设置为失败,这种情况多数用于离线模式。
2.在有网络的情况下,判断是4G还是WIFI。
3.如果是4G,使用NSURLRequestReloadRevalidatingCacheData
,对已经存在的缓存数据先去数据源验证有效性,如果无效,将从数据源获取,若缓存有效,则加载Cache
4.如果是WIFI,使用NSURLRequestReloadlgnoringLocalAndRemoteCacheData
这里是说,在有WIFI的状态下,不仅忽略本地的缓存数据,还忽略中间网络媒介(如代理服务器)的缓存,直接从最原始的服务器拿取数据。

Android
这里写图片描述

1.同理也是先判断是否有网络,如果没有网络,使用LOAD_CACHE_ELSE_NETWORK,即优先加载本地缓存,本地无缓存时,尝试从网络获取数据,获取失败,则提示网络错误信息。
2.若有网,使用LOAD_DEFAULT
根据cache-control 决定是否从网络上获取数据。如果设置为noCache() 则无论如何都从网络上获取数据,不care缓存数据的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值