React Native 对 fetch 的缓存行为是什么

What are React Native's caching behaviors for fetch

目前 React Native 在 fetch 调用中缓存的默认行为是什么?官方 FB 指南只是说 "look at Mozilla!" 但我们不是在网络浏览器上。由于中间件的原因,我假设这里的缓存行为是自定义的。

假设我愿意:fetch("https://exampleserver.com/myfile.json")

至少了解其中的一些内容将有助于决定我是否需要像这样使用 AsyncStorage 编写自定义缓存情况 https://gist.github.com/dslounge/18e555250a8df1f8218d702b21910eeb

React Native 的 fetch API 桥接到 iOS 上的 NSURLSession 和 Android 上的 okhttp3。这两个库都严格遵循 HTTP 缓存规范。缓存行为将主要取决于 HTTP 响应中的 Cache-ControlExpires headers。这些库中的每一个都有自己可以调整的配置,例如控制缓存大小或禁用缓存。

缓存的文件不能保证在过期之前一直存在。系统可以随时清除它们。

如果你真的很快发出三个请求,那么通常你会成功,因为缓存既不是立即的也不是保证的。

总的来说:适当地设置您的 HTTP 响应 headers,但不要依赖 HTTP 缓存以某种方式运行以确保您的应用程序正常运行。如果你想保证第二个请求实际上不会建立网络连接,你需要自己写。

我认为世博会不会影响这一点。