【问题标题】:Keep filtering logic on front end or back在前端或后端保留过滤逻辑
【发布时间】:2021-01-20 10:53:23
【问题描述】:

首先,我知道之前有人问过类似的问题,但我的需求/查询不同,我在问这个。

我正在构建一个礼物推荐应用程序。数据库最多包含800到1000个礼物。完成测验后,将对礼物运行过滤功能,并推荐与回答最多的问题匹配的礼物。还将添加查看所有礼物的选项。

我想问在测验开始时加载所有礼物然后在前端实现过滤逻辑是否是一个坏主意,还是应该将其添加到后端?

附言。每个礼物都是一个简单的对象,具有 4 到 5 个字符串/数字/布尔属性。

【问题讨论】:

    标签: javascript database performance filtering


    【解决方案1】:

    TL 博士;后端

    下载大约 1000 个项目只是为了向用户显示少数是不必要的数据使用。在台式机上没那么重要,但在移动设备上,情况就不同了。手机速度慢,连接不良 - 用户希望它们速度快。

    创建一个简单的 REST / GraphQl API,它接收测验响应、执行逻辑并仅返回应该向用户显示的项目。

    【讨论】:

    • 除了简单的不必要和臃肿之外,将所有数据返回给客户端意味着任何人都可以访问它。这可能会暴露机密信息,甚至可能是非法
    • 问题是,客户可能会或可能不会选择“显示所有礼物部分”。在这种情况下,无论如何我都必须获取所有数据......另外,数据库可能是 Firebase 中的 Firestore,以防万一
    • @SarmadHadi 典型的 API 可以选择传递后端将在返回数据之前应用的过滤器集合。请求所有数据将通过通过任何过滤器来完成。
    • 我的意思是,既然有 50% 的时间用户会请求所有数据,那么剩下的 50% 是否值得使用后端。不过谢谢,感谢您的回答并了解您想要关注的问题。
    • 您应该实现分页以向用户显示约 1000 个数据条目。没有人会真正同时查看和使用这么多数据,无需下载。
    猜你喜欢
    • 2019-02-20
    • 2018-07-16
    • 2014-11-05
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多