【问题标题】:Would it be faster to use server-side or client-side pagination/filtering/searching? [closed]使用服务器端或客户端分页/过滤/搜索会更快吗? [关闭]
【发布时间】:2019-05-29 22:02:45
【问题描述】:

我正在处理的当前系统处理各种数据集大小,大多数约为 100,但少数客户端有 250,000 或更多结果。我们需要处理对这些结果字段的搜索、对最多 50 个不同页面大小的分页以及过滤特定字段的所有结果。

目前,服务器已设置为执行所有这些功能。需要考虑的是搜索会触发后端调用,列过滤器会触发后端调用等。因此,很可能会更快地调用后端。

客户端可以在缓存的大型数据集上执行这些操作,但当数据集到达频谱的高端时,过滤/排序可能会变慢。

我们的主要考虑因素是速度和用户体验。后端方法可能会更快、更频繁地调用,但会导致用户加载时间短和微调。对于过滤/排序等附加操作,前端可能需要较长的初始加载时间和更快的加载/数据更改。

对于遇到类似问题的人,您有什么建议?你有什么顾虑?你能为这类问题提供一些好的资源吗?任何和所有的帮助都会有所帮助。

PS 抱歉,如果这不符合 SO 上的标准代码问题,请在此问题上寻求有经验的帮助。

【问题讨论】:

  • 通常返回所有内容并过滤客户端是一个非常糟糕的主意,它无法扩展。

标签: mysql ruby-on-rails angular


【解决方案1】:

如果日期较大,您必须使用服务器端排序、搜索和分页

如果您在给定的时间段内多次调用相同的端点,则为了提高性能,您必须缓存您的 http 调用。

您可以在网上找到许多使用 RXJS 缓存 HTTP 调用的示例,使用方便的运算符(例如 shareReplay)可以为每个订阅者缓存和重放数据,从而避免对服务器进行多次调用 p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    相关资源
    最近更新 更多