【问题标题】:30K record list response for JSON in angular2angular2中JSON的30K记录列表响应
【发布时间】:2017-10-17 08:48:21
【问题描述】:

您好,我正在尝试以 JSON 格式将对象列表从 Java 控制器发送到 Angular。如果结果是 20000,它工作正常。但是在 30000 角度的情况下,身体变得空虚。任何人都可以帮助您一次获得这 30000 条记录。 Angular 服务获取数据并从 JSON 转换 Java 代码返回: 列表

     private extractData(res: Response) {
        let body = res.json(); -- Error body is coming - ""
        let data = body || [];
        return data;
      }

【问题讨论】:

  • 同时获取那么多记录可能不是一个好主意。可能会出现超时或一大堆其他问题。另外...显示更多代码,我们还需要查看 java 位。
  • 不知道它为什么会坏。但@yılmaz 有一个非常好的观点。可能最好实现“分页”并循环通过它来进行此类负载
  • 你的服务器可能有超时错误
  • 你需要问自己的第一个问题。为什么您的浏览器中需要包含 30k 个项目的列表? Angular 不是为这么多项目构建的,特别是如果您在列表中有一些绑定。我认为问题在于可以序列化的数据量。但是,如果您的网站上有这么多数据,请认真审视您的架构。
  • 是的,我们有这么多数据,需要以角度显示。我正在做分页。但是当用户单击最后一个按钮时,我正在调用下一组结果并合并到上一个列表中。结果覆盖了以前的结果。使用分页jasonwatmore.com/post/2016/08/23/…

标签: java angularjs json angular2-services


【解决方案1】:

几乎没有充分的理由使用大型数据集在前端加载所有数据,因为这会导致很多问题并且通常会使您的 Web 应用程序变慢。你正在做分页,但你只在前端做。分页也可以在后端完成。您应该只从后端获取当前页面的所有数据,而不是从后端获取所有项目并仅在前端处理分页。使用页码和页面大小扩展您的 API,并使 API 返回结果总数以及作为响应正文的一部分或在 HTTP 标头中的计数。每次用户更改到不同的页面时,您都会从后端再次请求该特定页面的数据。

【讨论】:

    【解决方案2】:

    作为一种解决方法,您可以获取部分记录,例如从单个请求中获取 10000 条记录。然后合并javascript端的记录。

    【讨论】:

      猜你喜欢
      • 2019-05-02
      • 1970-01-01
      • 2013-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多