在我response
通过 Alamofire 获得后,在某些情况下,自己实现数据库或管理本地存储(文件等)可能有点矫枉过正。
我知道 Alamofire'srequestCachePolicy
并且它已经在缓存响应(基于cache-control
's max-age
),但这更多地与减少请求数量/改善在线体验有关。
但是当我没有通过 Alamofire 可用的连接时,是否可以使用缓存的响应? (Alamofire 是否提供某种方便的方法来处理这个问题)
在我response
通过 Alamofire 获得后,在某些情况下,自己实现数据库或管理本地存储(文件等)可能有点矫枉过正。
我知道 Alamofire'srequestCachePolicy
并且它已经在缓存响应(基于cache-control
's max-age
),但这更多地与减少请求数量/改善在线体验有关。
但是当我没有通过 Alamofire 可用的连接时,是否可以使用缓存的响应? (Alamofire 是否提供某种方便的方法来处理这个问题)
为了实现这种行为。您应该尝试修改即将执行的“正在进行”请求并设置标志returnCacheDataDontLoad
或returnCacheDataElseLoad
获得所需的行为。(取决于你的需要)
就像是:
var req = URLRequest(url: URL(string: "http://foo.bar.com/res")!)
if noInternet {
req.cachePolicy = .returnCacheDataDontLoad
}
还要确保应用程序正在与服务器协商缓存策略,以防万一您还需要对其进行调整。
希望能帮助到你!:)