gpt4 book ai didi

javascript - 在单页应用中,在服务器上进行排序和过滤是标准的吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:00:44 25 4
gpt4 key购买 nike

我正在使用 ReactJS 开发一个新的应用程序,并在客户端实现排序/过滤。然而,在浏览了更大的开源 SPA 之后,我看到很多是通过 API 在服务器端进行的。除了性能之外,他们在客户端做这件事有什么缺点吗?

最佳答案

这主要取决于数据的总潜在大小。

客户端

如果这是您永远不会拥有的东西,例如50条, ListView 需要的数据不多,直接发给客户端即可。

这方面的一个例子是限制大小的子列表。例如,如果您的站点是一家商店,并且您只能出售 50 件商品,那么您可以一次性将它们发送过来。这里的缺点是,如果您稍后将其更改为更大的数字,则需要使用服务器端分页/排序重写它。

服务器端

通常在应用程序中,列表中可能有数千或数百万个项目。这方面的一个例子是 questions/unanswered ,其中每个项目都需要大量数据来表示,并且在撰写本文时超过 200 万个项目。

尝试一次将 200 万个 stackoverflow 问题加载到客户端是不可行的,即使是 1000 个项目,对您的服务器和数据库来说也是昂贵得多。

默认情况下,排序/筛选应该在数据库上完成,因为它通常需要允许缩放,即使对于单个用户也是如此。在特定情况下,您可以将所有内容加载到客户端作为优化。

客户端数据库

这在网络成为瓶颈时特别有用,并且用户会长时间使用此应用程序,可能是在离线时。

应用程序启动时,您会下载大量数据,并将其存储在 IndexedDB(或简单对象,具体取决于数量)中。然后,您可以与这些数据进行交互,而不受服务器端 API 或网络性能和可靠性的限制。

您可能永远不需要它,但我认为值得一提。我听说这被部署在接待员的网络软件中,以及其他长时间启动无关紧要的办公室工作(只有第一次启动会很长)。 Facebook Ads 在其“强大的编辑器”中使用了这一点,它实际上会下载所有配置,然后您在完成后重新上传所有内容。

关于javascript - 在单页应用中,在服务器上进行排序和过滤是标准的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26352300/

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