即使超过缓存控制年龄限制,值也会从缓存中加载
Posted
技术标签:
【中文标题】即使超过缓存控制年龄限制,值也会从缓存中加载【英文标题】:Value getting loaded from cache even after exceeding the cache control age limit 【发布时间】:2017-05-16 11:05:22 【问题描述】:我在服务器响应中将缓存控制限制 [private; max-age=15]
设置为 15 秒。但即使在 15 秒后,响应也会从缓存中加载。我正在使用swift3
& Alamofire 4.0
。
var request = URLRequest(url: URL(string: urlStr)!)
request.timeoutInterval = 30
request.httpMethod = "GET"
request.addValue("private", forHTTPHeaderField: "Cache-Control")
request.cachePolicy = .returnCacheDataElseLoad
request.addValue("token", forHTTPHeaderField: "auth_key")
Alamofire.request(request).responseObject(completionHandler: (response: Response) in
print(response)
【问题讨论】:
【参考方案1】:您应该更改缓存策略。 苹果的文档中写道,
case returnCacheDataElseLoad
指定现有的缓存数据 应用于满足请求,无论其年龄或 到期日期。如果缓存中没有现有数据 对应于请求,数据从原始加载 来源。
来源:https://developer.apple.com/reference/foundation/nsurlrequest.cachepolicy
查看列表,找出最适合您的政策。我建议将其设置为默认的useProtocolCachePolicy
。
【讨论】:
以上是关于即使超过缓存控制年龄限制,值也会从缓存中加载的主要内容,如果未能解决你的问题,请参考以下文章