我需要在WKWebview上缓存webview url。我可以使用下面的配置来完成此操作
var webViewConfiguration:WKWebViewConfiguration {
get {
// Create WKWebViewConfiguration instance
let webCfg:WKWebViewConfiguration = WKWebViewConfiguration()
// Configure the WKWebViewConfiguration instance with the WKUserContentController
webCfg.userContentController = userContentController
webCfg.websiteDataStore = WKWebsiteDataStore.default()
webCfg.processPool = ProcessPool.shared.processPool
return webCfg
}
}在加载webview时,我使用了以下代码:
let request = URLRequest(url: self.url!, cachePolicy: .returnCacheDataElseLoad, timeoutInterval: 600)
self.webView.load(request)我现在面临的问题是缓存在每次启动时都会花费时间。也就是说,在每次启动时,webview都需要花费大量的时间来加载,加载一次后,加载速度会很快。
我需要实现的是,一旦webview被加载,它应该在连续加载时加载得更快。
发布于 2019-12-11 16:08:04
.useProtocolCachePolicy是URL加载请求的默认策略。它应该适用于你的情况。
let request = URLRequest(url: self.url!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 600)发布于 2019-12-12 19:01:30
使用默认的.useProtocolCachePolicy而不是.returnCacheDataElseLoad是可以的。此策略将自动查看来自服务器的响应,以决定是否应实际再次获取数据。在服务器端,为其响应设置Cache-Control HTTP头的最大寿命。
https://stackoverflow.com/questions/58927493
复制相似问题