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

2024-03-26

目前 React Native 的默认缓存行为是什么fetch打电话?官方 FB 指南只是说“看看 Mozilla!”但我们使用的不是网络浏览器。我假设缓存行为是由于中间件而自定义的。

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

  • 调用后请求会自动缓存吗?

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

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

    • 如果是这样,我可以请求缓存保留吗?
  • iOS 中的这种行为与 Android 中有何不同?

  • 世博会对此有影响吗?

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


React Native 的fetchAPI 桥接到NSURLSession在 iOS 和okhttp3在安卓上。这两个库都严格遵循 HTTP 缓存规范。缓存行为主要取决于Cache-Control and ExpiresHTTP 响应中的标头。每个库都有自己可以调整的配置,例如控制缓存大小或禁用缓存。

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native 对 fetch 的缓存行为是什么 的相关文章

随机推荐

  • 无法对非静态方法进行静态引用

    我已经搜索了这个问题并找到了很多关于它的答案 但是我不理解它们 我想对我自己的代码进行澄清 所以希望它有意义 我正在尝试在 main 方法中调用 PrintList 方法 但我收到这个错误 无法从 Stack 类型对非静态方法 PrintL
  • 如何在 webgram 中监听 Telegram 消息/推送通知

    我需要通过 Telegram API 接收最新的 telegram 更新 看来 webogram 是该任务唯一最新的 javascript 库 我之前使用的是 telegram link 它通过 TCP 很好地完成了任务 我想知道 webo
  • 如何在不使用 for 循环或 try 语句的情况下有效地拆分一个字符串中的货币符号和数字

    我有一个像这样的字符串 200 000 000 or Yan300 000 000 我想拆分货币和数字 并输出一个元组 200000000 没有 在数字字符串中 目前我正在使用以下脚本 该脚本正在运行 def splitCurrency c
  • 语义词法分析器谓词性能

    我有一个词法分析器为传递给词法分析器的宏字符串的动态列表创建 MACRO 标记 我在最顶层的词法分析器规则中使用了语义谓词来实现此功能 MACRO macros null tryMacro Where tryMacro 只是检查是否有任何宏
  • Getopt 移位 optarg

    我需要这样调用我的程序 program hello r foo bar 我从 argv 1 中打招呼 但我在值栏上遇到问题 我还应该将 r 更改为其他内容吗 while c getopt argc argv r 1 switch i cas
  • 使用 mplot3d 绘制二维数组

    我有一个 2D numpy 数组 我想以 3D 形式绘制它 我听说过 mplot3d 但我无法正常工作 这是我想做的一个例子 我有一个尺寸为 256 1024 的数组 它应该绘制一个 3D 图表 其中 x 轴从 0 到 256 y 轴从 0
  • 将 jquery datepicker 创建的日期转换为标准 mysql 日期格式

    我在日记页面上使用以下 jquery 日期和时间选择器 http trentrichardson com examples timepicker rest examples http trentrichardson com examples
  • 如何以编程方式访问数据网格行详细信息控件

    我有一个数据网格 其中包含一些定义的列 然后是行详细信息模板 如何在隐藏代码中访问行详细信息模板中的控件 我有一个按钮 我想以编程方式启用 禁用 但我不知道如何在后面的代码中访问它 我在MSDN上看到过这个 http msdn micros
  • Roo - 添加自定义查找器

    我使用 Roo 创建了一个使用现有数据库的项目 我能够创建动态查找器 但我想实现自定义查找器 它将接收 4 个参数并使用其中一些参数创建 Like 条件 其他参数创建 equals 条件 对 Roo 来说 最好的方法是什么 推荐的模式是编辑
  • 仅当验证成功时如何提交表单

    我尝试在提交请求之前验证表单 我正在使用 jquery 验证 我期望当页面完成加载时 表单将自动提交 并且我将在 div 中看到 正在加载 但什么也没发生 这是我的代码 但似乎不起作用
  • Android应用程序数据存储不断增加

    我正在开发一个 Android 应用程序 它基本上加载新闻文章列表 并在用户单击时在网络视图中打开它们 我想知道的是 当我在 设置 gt 应用程序 gt 管理应用程序 中查看应用程序详细信息时 总存储大小不断增加 特别是 数据存储规模不断增
  • jquery dataTable 过滤器/搜索不起作用

    我是 jquery 新手 我使用了 jqueryData 表 我在搜索过程中遇到问题 搜索适用于前两列 例如 如果我使用 QE5855 或 3453457 进行搜索 则工作正常 但它不搜索第三列 例如 如果我输入 美国 或 美国 表未排序
  • Flutter Firebase 错误(任务“:app:mergeExtDexDebug”执行失败)

    我是编程新手 对 flutter 和 firebase 也很陌生 我正在尝试这段代码 https github com tattwei46 flutter login demo https github com tattwei46 flut
  • Google Places API 为什么每次都会在不同的变量下返回纬度和经度?

    这让我抓狂 出于某种原因 API 用于返回纬度和经度 如下所示 我认为是这样的 place geometry location y作为纬度 place geometry location z作为经度 然后它开始像这样返回 place geo
  • 抛硬币问题的Python代码

    我一直在用 python 编写一个程序 模拟 100 次抛硬币并给出抛硬币的总数 问题是我还想打印正面和反面的总数 这是我的代码 import random tries 0 while tries lt 100 tries 1 coin r
  • 如何在 gradle 脚本中获取正在运行的 Android 风格名称

    这次我遇到了这个问题 我试图在 gradle 脚本中获取当前的风格 我已经尝试过这里给出的答案如何在 gradle 中获取当前的风味 https stackoverflow com questions 30621183 how to get
  • CSS a href 样式

    我有一个 hrefclass button 我正在尝试这样设计 button a link text decoration none button a visited text decoration none button a active
  • UITableViewAutomaticDimension 在 Xcode 6.3 中不起作用

    我将 Xcode 与 Swift 1 2 一起更新到 6 3 并完成了转换 除了表视图的动态行高之外 一切正常 我在 3 个完全不同的表视图上有这些 所以它可能不是影响该错误的其他因素 我将所有表视图设置为 tableView rowHei
  • asp.net mvc 中具有相同输入 id 的两个表单

    我在一个页面上有多个表单 它们通过隐藏输入将 id 传递给控制器 由于我对这些视图使用强类型视图 因此我认为我需要保持每个视图的 Id 相同 它目前有效 但我认为这是不好的做法 我应该如何处理这个问题 在 Django 中有表单前缀值 是否
  • React Native 对 fetch 的缓存行为是什么

    目前 React Native 的默认缓存行为是什么fetch打电话 官方 FB 指南只是说 看看 Mozilla 但我们使用的不是网络浏览器 我假设缓存行为是由于中间件而自定义的 假设我这样做 fetch https exampleser