Raf*_*fAl 8 caching ios swift wkwebview
我正在经历一种奇怪的WKWebView行为,并且我已经没有想法了。
有时,假设 50 次加载中有 1 次,WKWebView不会执行新的请求,而是加载缓存的请求。
URLRequest使用默认配置。我没有设置自定义缓存策略。所以请求应该使用默认的 NSURLRequest.CachePolicy.useProtocolCachePolicy
let request = URLRequest(url: url)
wkWebView.load(request)
Run Code Online (Sandbox Code Playgroud)
Cache-Control标头进行响应public, max-age=9, s-maxage=2592000
Run Code Online (Sandbox Code Playgroud)
WKWebView会将缓存策略设置为.returnCacheDataElseLoad. 这意味着 WKWebView 会显示过时的内容,从本地缓存加载它。文档说:
NSURLRequest.CachePolicy.returnCacheDataElseLoad使用现有的缓存数据,无论年龄或到期日期,仅当没有缓存数据时才从原始源加载。
似乎解决方法是使用以下命令清除缓存:
public, max-age=9, s-maxage=2592000
Run Code Online (Sandbox Code Playgroud)
然而,这是一种矫枉过正,因为它还清除了其他应该缓存更长时间的东西(例如图像)。
WKWebView决定使用.returnCacheDataElseLoad?| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |