在基于 Web 的前端中在哪里实现后端过滤器逻辑

Posted

技术标签:

【中文标题】在基于 Web 的前端中在哪里实现后端过滤器逻辑【英文标题】:Where to implement backend filter logic in Web-based frontend 【发布时间】:2018-07-16 20:55:22 【问题描述】:

如果,在(基于 React 的)Web 应用程序中,我想填充一个选择下拉列表,其内容由某些后端(Spring Boot)逻辑根据来自 UI 的输入来确定,例如

filterOptions(x) return (x < 0) ? [1,2,3] : [4,5,6];

对话框不经常打开,客户端/服务器通信开销可以忽略不计,因为它是基于 LAN 的应用程序。我有两种方法:

1) 我们可以构建一个后端端点,每当用户打开对话框时都会查询该端点。

2) 我们可以构建一个更通用的端点来获取过滤器规则集并在前端构建过滤器。

3) 你的方法在这里

IMO,1) 不是一种理想的方法,因为它使用这些过滤器端点使 api 变得混乱,并且过多地耦合前端和后端,而 2) 并没有好多少,而且实现起来仍然很奇怪。

您将如何实现这一点,您会问什么问题来确定哪种方法更适合?

【问题讨论】:

如果那里什么都没有写,那么(3)有什么意义呢? 为什么不直接获取所有下拉选项,然后在前端进行过滤? 我认为选项 1 仍然更好,因为我们正在向微服务架构迈进。 在 3) 中输入你自己的想法。获取所有选项意味着过滤器逻辑必须在前端实现,这是不可接受的。 【参考方案1】:

我认为这完全取决于数据集的大小和规则集的复杂性。所有合理大小的数据集都应该被拉到客户端并缓存在那里,这允许服务器缓存这些请求,从而实现快速响应。对于复杂和大型数据集,将其留给服务器。

【讨论】:

以上是关于在基于 Web 的前端中在哪里实现后端过滤器逻辑的主要内容,如果未能解决你的问题,请参考以下文章

Python / Django 应用程序:带有过滤菜单的酒单。过滤逻辑应该去哪里?前端还是后端?

什么是后端开发?它和前端开发不一样在哪里?

基于javaweb的web资源库项目——登录功能demo

基于javaweb的web资源库项目——登录功能demo

web图片一般存在后端哪里

前端开发与后台开发的区别在哪里?