我知道如果我们在Parse.com服务中使用查询(例如:
),可以设置缓存策略 ParseQuery query = new ParseQuery("Players");
query.setCachePolicy(ParseQuery.CachePolicy.NETWORK_ELSE_CACHE);
但是如果我只使用Parse的Rest 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有效,但没有缓存支持。如果有任何解决方法?非常感谢。
答案 0 :(得分:2)
您将服务器缓存与本地缓存混淆。查询缓存策略是关于本地缓存的。对于iOS SDK,Parse可能使用文件缓存或类似文件,如下文所示:
将查询结果缓存在磁盘上通常很有用。这让我们 您在用户的设备离线或应用程序具有时显示数据 刚刚开始,网络请求尚未完成。 Parse在占用时自动刷新缓存 空间太大了。
默认查询行为不使用缓存,但您可以启用 通过设置query.cachePolicy进行缓存。例如,尝试网络 如果网络不可用,则返回缓存数据: (https://parse.com/docs/ios_guide#queries-caching/iOS)
您的示例(NETWORK_ELSE_CACHE
)记录如下iOS SDK
kPFCachePolicyNetworkElseCache
查询首先尝试从网络加载,但如果失败,则从缓存加载结果。如果网络和缓存都没有成功,则存在PFError。
这与缓存控制标头无关。 cache-control指令修改服务器的缓存行为。
如果您想使用REST API而不是提供的SDK,并且想要客户端缓存,则必须自己实现。