gpt4 book ai didi

javascript - 下载所有数据,本地过滤或仅下载过滤后的数据

转载 作者:行者123 更新时间:2023-12-01 00:55:02 25 4
gpt4 key购买 nike

我有一个商店 Web 应用程序 React 前端,Firebase 位于后端,Firestore 作为数据库。

我的商店有 500 件商品。我期待仅限桌面的客户端。

更好的做法是:

  • 在初始加载期间将所有项目一次性下载到本地对象数组中,并使用 .filter() 进行过滤;
  • 每当客户端过滤时,调用数据库仅返回过滤后的数据。

对于一次性下载,我想:

  1. 每个过滤器(也许)速度更快,因为它是在本地完成的。我不确定对象数组的大小会比从服务器获取响应的速度慢。由于客户端只是桌面版,所以我的想法相当大。
  2. 不需要为每个过滤器与服务器进行通信。 Firestore 还会计算读取、写入或事务数量的配额,因此它应该会减少我的配额使用。
  3. 在同一客户端上重复相同的过滤器不需要再次请求相同的数据。就像在客户端中可能会过滤,然后重置过滤器,并再次执行相同的过滤器。

对于仅下载过滤结果,我想:

  1. 在服务器上进行过滤并响应(可能)比本地 .filter() 更快。​​
  2. 客户始终可以获得最新信息。
  3. 初始加载速度更快。

我知道这可能取决于数据库结构,因为 Firestore 是浅查询,因此我将数据结构化得尽可能浅,文档中没有子集合。

我只是比较普通的东西,所以后面没有 Algolia 或 Elastic,前面也没有搜索或索引库。

最佳答案

500 个文档数量非常少。现代桌面系统在排序和过滤该列表时绝对没有问题。您可能会对 Cloud Firestore 一直对所有查询进行排序和过滤的账单感到不满,而不是只下载一次并在本地完成所有操作的性能。这取决于您期望应用程序用户的行为(以及文档的大小及其连接速度)。

当您达到 50,000 个项目(在低端台式机上)时,您可能会发现一些性能问题,但可能不足以给任何人带来不便。尝试编写几行代码来排序或过滤 50,000 个随机整数,看看需要多长时间。您的实际应用程序代码的执行效果应该与真实数据没有太大差异。

如果您能够在本地缓存文档而无需再次查询所有文档,您会做得更好。考虑添加上次更新的文档字段,并仅查询自上次查询以来更新的文档。您将节省更多金钱和时间。

最后,您应该对您的用例进行基准测试,以获得一些可供使用的实用数据。花更少的时间猜测,花更多的时间进行测量。

关于javascript - 下载所有数据,本地过滤或仅下载过滤后的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56660532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com