缓存策略

缓存策略

问题描述:

我知道,高速缓存策略可如果我们使用的查询在Parse.com服务(防爆:)缓存策略

ParseQuery query = new ParseQuery("Players"); 
query.setCachePolicy(ParseQuery.CachePolicy.NETWORK_ELSE_CACHE); 

,但如果我只用解析的休息怎么办呢设定API?对象的模型+应用内的网络层与解析无关。所有我需要它 - 与数据JSON。

curl -X GET -H "X-Parse-Application-Id: hgjsdgfsjfjsdf" -H "X-Parse-REST-API-Key: kjsdhfjsfhsdfbjsdfsdhjf" https://api.parse.com/1/classes/Players 

这个GET工作,但没有缓存支持。如果有任何解决方法?非常感谢。

+1

缓存在客户端。如果您直接使用REST API,则必须实施自己的缓存解决方案。 – 2014-10-09 07:32:21

+0

query.setCachePolicy(ParseQuery.CachePolicy.NETWORK_ELSE_CACHE);例如在服务器响应中更改HTTPHeaders。我需要一种方法来更改服务器的响应头以允许缓存。适用于iOS的AFHttpNetworkig可以使用缓存,但它需要propers标头filelds – alex 2014-10-09 07:46:18

+0

您是否尝试过在请求中设置Cache-Control标头? – 2014-10-09 08:15:30

你混淆了本地缓存服务器缓存。查询缓存策略是关于本地缓存的。对于iOS SDK,Parse可能使用文件缓存或类似文件,如下所示:

将查询结果缓存在磁盘上通常很有用。这让 您的数据显示在用户的设备处于离线状态,或当应用程序有 刚刚起步,网络请求还没有来得及完成。 Parse负责自动刷新缓存,当它占用太多空间时,会占用 。

默认查询行为不使用缓存,但你可以通过设置query.cachePolicy使 缓存。例如,尝试网络 ,然后回落到缓存的数据,如果网络不可用: (https://parse.com/docs/ios_guide#queries-caching/iOS

你的榜样(NETWORK_ELSE_CACHE)是记录了iOS版SDK

如下

kPFCachePolicyNetworkElseCache 查询首先尝试从网络加载,但如果失败,它从缓存加载结果。如果网络和缓存都不成功,则会出现PFError。

这有什么好做的缓存控制标头。缓存控制指令修改服务器的缓存行为。

如果你想使用REST API,而不是所提供的SDK,并希望客户端缓存,则必须实现一个自己。