React Native fetch()API是否支持缓存?

时间:2018-04-09 20:54:41

标签: react-native fetch-api

我的应用使用fetch(uri,{cache:'默认'})来查询服务器并将响应标头记录到控制台。当我的应用程序在第二次及以后的时间内使用相同的URI获取时,我希望看到状态304,但它继续以200响应,即使响应具有最大年龄为86400的缓存控制头(1天)。

我注意到服务器正在使用Cloudfare,并且cf-cache-status设置为" HIT"这意味着它是从CDN提供的,但我不希望停止提取API来缓存。

如果我想避免多次重新获取相同的数据,是否需要实现自己的自定义缓存解决方案?

1 个答案:

答案 0 :(得分:1)

依靠返回的api statusCodes并不是一件好事。

由于fetch将statusCodes 101204205304视为null身体状态here

有许多参数和steps涉及将statusCode设置为304,需要对cache-fetch响应进行全面检查。

但要注意的主要是

Fetch将在前往网络的途中检查HTTP缓存。如果有新的响应,它将被使用。如果存在过时响应,则将创建条件请求,否则将创建正常请求。然后它使用响应更新HTTP缓存。

因此,您可以检查以下标记If-Modified-SinceIf-None-MatchIf-Unmodified-SinceIf-MatchIf-Range,如果已设置则会自动检查将cache mode设置为nostore

相关问题