首页 > 解决方案 > 我应该在每次击键时发送获取请求还是将 json 数据存储在 json 文件中?

问题描述

嘿,我正在使用 api 在我的颤振应用程序中检索 json 数据。一个 api 给了我这样的响应,结果数组包含大约 800 个对象:

{
  "response": "success",
  "results-for": "abcd",
  "results": [
    {
     "name":"value",
    },
    {
     "name":"value",
    },
    .
    .
    .
    . 
]

所以我只想问我是否应该在每次击键时向 api 发送 fetch 请求,还是应该将 json 数据存储在本地的 json 文件中,我已经从 api 中检索了该文件。

我想在我的应用程序中显示“名称”键作为我的下拉选项,其中 api 返回给我....

标签: apiflutter

解决方案


一般来说,您应该避免对 API 进行不必要的调用。

同样一般来说,您不应该在每次击键时都进行 API 调用。有一个最小字符限制(例如:3)是好的,但除此之外,您还应该实现一个计时器,等待用户输入中断然后进行 API 调用。就像如果一个新字符没有输入超过 300-500 毫秒,则进行 API 调用,如果确实出现了新的击键,则重置计时器。为什么这么多时间:link1link2

话虽如此,您没有提供足够的信息来为您提供针对此特定案例的结论性答案。我不知道有问题的 API 是如何工作的......在某些情况下您无法预取结果,这里有一些:

  • 如果 API 对返回的结果数量有限制,那么可以,您应该继续获取,直到结果集低于限制。

  • 如果 API 从中获取这些结果的数据库经常更新,并且您的用户始终看到最新结果至关重要,那么您应该继续获取。

  • 如果 API 背后的 SQL 不进行通配符搜索,比如它必须是完全匹配的。

如果我理解正确,结果集总共有大约 800 个对象,我个人会获取一次,然后从我的最后过滤它。您节省了带宽,减少了服务器压力,获得了更好的用户体验:比在用户的互联网连接不稳定的情况下进行许多可能会或可能不会通过的 api 调用更快、更可靠。 编辑:也就是说,如果我确定数据集不会增长太多,否则最少。字符限制:3 & 等待用户停止输入(计时器,300 毫秒),然后再进行 API 调用。


推荐阅读