【问题标题】:Proper way to process Large number of records in React or Java在 React 或 Java 中处理大量记录的正确方法
【发布时间】:2018-11-29 03:24:59
【问题描述】:

我在 ReactJS 中有前端,在 Spring Boot 中有后端 api。我必须显示一个包含 Api 记录的下拉列表。

场景是我从一个端点获取用户 ID 列表,然后对于每条记录,我必须调用另一个 api 端点以获取与该用户关联的地址详细信息(它可能有大量记录),丢弃down 是地址的名称。

我的问题是,如果我遍历所有记录并获取地址详细信息,它将超时并永远花费。

谁能建议我正确的方法,Java 或 JavaScript。

我读过一些关于 observable、observer 等的文章,但我什么也没得到。有没有持续更新对象的概念。

谢谢

【问题讨论】:

  • 听起来你可能至少需要三件事:(1) 围绕 Promise 构建 UI 显示(这样你就可以调度大量它们并在它们到达时填充它们),(2) 触发尽早检索而不是等待下拉菜单被点击,也许(3)实现一个批量端点,您可以在其中询问/addresses?user=1,2,3之类的内容。还要考虑将下拉菜单限制为属于特定用户的地址是否有意义。

标签: javascript java reactjs spring-mvc spring-boot


【解决方案1】:

距离越短,走得越快。如果你做这个客户端,服务器必须在网络上发送数据,然后客户端才能处理它。最好的方法是编写一个 SQL 查询来执行正确的连接以快速获取数据。将处理后的数据发送给客户端。

【讨论】:

    【解决方案2】:

    处理数据的一个好方法是实现某种分页。您不需要一次性显示所有数据,这样做会很昂贵。例如,如果您想要获取列表中有 1000 个项目,则可以根据您的喜好在 10 秒或 20 秒内完成。这样,您可以最大限度地减少查询的数量。因此,它的速度要快得多。

    Here is an example 在 React JS 上这样做。我只是利用Fake Online REST API

    希望这会有所帮助。

    【讨论】:

    • 你好,ickyrr,谢谢你的回复,这可以用纯javascript实现吗?
    • 是的,你可以用纯javascript实现。
    • 嗨,ickyrr,你能告诉我更高层次的结构和使用什么吗:Observable 或其他一些功能。
    • 我不知道我是否正确理解了这个问题,但你现在可以使用你当前的堆栈。根据我在您的帖子中阅读的内容,您正在使用 React JS,您现在可以使用 Redux 和 Redux-thunk 来处理异步内容。老实说,Observable 对我来说确实是一个复杂的话题。你可以用 Observables 或 Redux thunk 做同样的事情,但 observables 更强大。如果您刚刚开始,您现在可以使用 Thunk。所以使用 React JS + Redux + Redux Thunk。
    猜你喜欢
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多