django - 我应该在哪里排序和过滤?后端还是前端?

标签 django reactjs graphql

我在是否应该在前端或后端进行排序和过滤时遇到了概念冲突。

有人建议逻辑应该位于后端并且数据数量有限,即)如果您有数百万个数据集,则应一次向客户端提供 10-100 个结果,以减少页面加载时间。我感到困惑的是,如果有许多客户端同时排序和过滤(即 100 个用户)怎么办?如果是这种情况,那么您必须不断地对数百万条记录进行 100 次排序和过滤,我认为这会减慢速度服务器。

如果我假设我的数据集约为 10000 - 100000,并且有 10-50 个用户同时使用该应用程序,并且如果初始时间负载并不重要,因为它将是一个私有(private)企业应用程序(即)ERP,过滤和排序逻辑应该放在哪里?

最佳答案

您的问题没有一个正确的答案,以下是您的问题的优点和缺点。

服务器端排序:

  1. 对数据进行排序所产生的服务器开销。

  2. 由于您已经在发送经过过滤的数据,因此用户的数据传输量减少。

  3. 如果排序需要很长时间,用户体验可能会很差,用户会在空白屏幕上等待。

用户端排序:

  1. 服务器和用户的网络使用量增加,因此服务器进程运行时间较长。

  2. 可能会提供稍微更好的用户体验,它可能会增加页面加载时间的总体增长,但用户的屏幕上会显示一些数据。

最好是两全其美,而不是只坚持其中一个。

您可以在服务器级别使用缓存,这可能会提高应用程序的性能。

关于django - 我应该在哪里排序和过滤?后端还是前端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55547775/

相关文章:

json - 如何为本地服务的 JSON 文件创建 Web 服务端点

postgresql - 在 GraphQL+Sequelize+CLS 中抛出错误后事务仍然自动提交

django - 如何使用 django 表单集创建带有问题和答案的调查应用程序?

python - Django : Several paths, 一个ListView,不同的模板?

python - 为什么我覆盖的保存方法没有在我的 Django 模型中运行?

python - 如何链接使用 Pandas 在函数中创建的 CSV 文件并将其显示在我的 django view/html 中?

reactjs - React-big-calendar 导航到特定的日期/月份

html - 2 个 div 之间重叠

node.js - Apollo 客户端 : Variable is not defined. 收到状态码 400

javascript - GraphQL:更新数组