我使用凌空作为新闻应用网络库。我希望我的应用程序在第一次连接中,在webservice中获取所有可用的新闻,然后每次打开我的应用程序时,如果新消息在服务器更新凌空缓存上可用。问题是更新缓存的常用方法是什么?从服务器良好策略发送通知或每次应用程序打开时检查服务器?
答案 0 :(得分:1)
有两个主要选择: 1.使用纯默认的http缓存(默认的齐射实现或者凌空使用的任何hhtp堆栈之一) 2.使用您自己的自定义缓存,您可以在其中准确定义缓存方式和内容
我会详细介绍选项1.因为看起来你使用了这个。
当您缓存响应时,通常不需要外部信息何时更新,因为信息包含在返回的缓存头中。
所以响应(例如一篇文章)可以是: 1)使用有效缓存进行缓存 - 在这种情况下,没有请求进入网络层 2)缓存的女巫需要重新验证 - 在这种情况下,您可能会收到新版本的响应或304响应与NO正文,这意味着当前缓存有效,仍然可以使用 3)没有缓存 - 在这种情况下发出新请求
这意味着如果您的新闻服务器有正确的缓存标头,您可以在应用程序启动或活动恢复时发出请求以检查新数据,而您无需担心会有太多请求发送。特别是如果您的文章更改频率很高,这是更好的选择。
另一方面,如果你没有合适的标题或者你很少更新你的新闻,那么发送推送通知是一个选项,但你需要将它们发送给你所有的客户,所以当你拥有它时不可行许多变化以及实施,维护和成本的复杂性将会更高。