相关疑难解决方法(0)

React Native 的 fetch 缓存行为是什么

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

假设我这样做: fetch("https://exampleserver.com/myfile.json")

  • 请求是否在调用后自动缓存?

  • 是否myfile.json缓存了整个“会话”的请求内容(即:App 正在运行 active/bg,但未被用户强制关闭)。

    • 请求缓存在哪里?即:是否使用AsyncStorage
    • fetch网址再次导致应用程序读取高速缓存。
    • 缓存有多“快”,如果出于某种原因我必须立即myfile.json多次请求,它是否会在那时基本上忽略缓存并进行所有这些单独的调用?(我在调试器中看到这种行为)
  • 当我强制关闭应用程序并重新打开时,此缓存是否仍然存在?

    • 如果是这样,我可以请求缓存持久化吗?
  • iOS 和 Android 中的这种行为有什么不同吗?

  • 世博会对此有影响吗?

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

fetch http-caching react-native expo

6
推荐指数
1
解决办法
3509
查看次数

如何使用NSURLSession来确定资源是否已更改?

我正在使用NSURLSession从HTTP服务器请求JSON资源.服务器使用Cache-Control来限制资源缓存在客户端上的时间.

这很好用,但是我还想在内存中缓存一个反序列化的JSON对象,因为它经常被访问,同时继续利用NSURLSession中内置的HTTP缓存机制.

我想我可以保存一些HTTP响应头:Content-MD5,Etag以及Last-Modified反序列化的JSON对象(我使用这3个字段,因为我注意到并非所有HTTP服务器都返回Content-MD5,否则它本身就足够了) .下次我收到JSON对象的响应时,如果这3个字段相同,那么我可以重用以前反序列化的JSON对象.

这是一种确定deserizlied JSON仍然有效的可靠方法.如果没有,我如何确定反序列化的对象是否是最新的?

http-headers nsurlcache ios nshttpurlresponse nsurlsession

1
推荐指数
1
解决办法
4046
查看次数