我正在创建一个网络应用程序
前端 - reactjs 和后端 java。
前端和后端通过 rest 相互通信。
在用户界面上,我显示了一个项目列表。我需要过滤它们以获得一些参数。
选项 1:过滤器逻辑在前端
在这种情况下,我只需要调用后端并获取所有项目。 在用户选择一些过滤选项后,过滤在 ui 上发生。
优点:为此我不需要将数据发送到后端并等待响应。刷新列表的速度应该更快。
缺点:如果我需要多个前端客户端。让我们说一个移动应用程序。我也需要在此应用程序上再次创建过滤器。
选项 2:过滤器逻辑在后端
在这种情况下,我会在加载应用程序时获取所有列表项。用户更改过滤器选项后,我需要发送带有过滤器参数的获取请求并等待响应。 之后更新 UI 上的项目列表。
优点:过滤器逻辑只写一次。
缺点:速度可能会慢很多。因为发送请求和返回结果需要时间。
问题:过滤逻辑应该放在哪里?在前端还是在后端?或者什么是最佳实践?
最佳答案
在后端进行过滤和限制。如果您有一百万条记录,并且有十万个用户同时尝试访问这些记录,您真的要向每个用户发送一百万条记录吗?它会破坏您的服务器和用户体验(与仅获取 20-100 条记录然后单击(分页)相比,等待从后端为每个用户传播一百万条记录然后在前端传播将花费很长时间按钮检索下一个 20-100)。最重要的是,然后在前端过滤一百万条记录将再次花费很长时间并且最终不是很实用。
从现实世界的角度来看,大多数网站都有某种记录限制:Ebay = 50-200 条记录,Amazon = ~20,Target = ~20...等。这确保了快速的服务器响应和流畅的用户体验对于每个用户。
关于java - 过滤器逻辑应该在前端还是后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52346685/