您的位置:首页 > 移动开发

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

2016-07-06 09:33 489 查看


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缓存数据的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: