javascript - 如何通过进行一次 API 调用而不是多次调用来提高 Angular/Node 性能?

标签 javascript angularjs node.js api angular-services

使用 Angular/Node 构建概念验证项目。我已经完成了第一个任务,即“让它发挥作用”。既然 MVP 起作用了,我现在需要关注表现。延迟真的非常糟糕,我不知道如何处理或修复它。尝试了各种方法,但没有成功。

概述:

使用Node Server调用外部API获取JSON格式的数据。使用 Angular Service 进行 5 个 API 调用并在 Angular Controller 上渲染数据。有没有一种方法可以让我只进行一次 API 调用而不是 5 次?由于它进行 5 个 API 调用,因此服务器端的 CPU 处理率为 90%,以下是客户端性能:

enter image description here

最佳答案

如果收集一次 API 调用的结果需要 X 时间,那么您将需要 X * 5 次来收集 5 次 API 调用的结果。如果您无法更改 API 来整合它,至少您可以通过同时发送所有五个 API 调用(即一个接一个地异步发送)来减少网络往返的等待。

也就是说,如果 X = (N * 2) + P 是网络传输的两倍,再加上处理,那么您可能会看到类似 (N * 2) + 的内容,而不是 5 * ((N * 2) + P) (5 * P)。服务器可能仍然一次处理一个,但您没有请求之间的网络传输时间。

如果服务器不忙,并且具有多个核心,并且是多线程或多进程,并且数据库锁定对您有利,您可能会看到五个竞争请求之间存在一些并发性,并且 5 * P 可能是更少。

关于javascript - 如何通过进行一次 API 调用而不是多次调用来提高 Angular/Node 性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37953531/

相关文章:

javascript - 如何让这个函数发送一封电子邮件一次并将实体更改为 "checked"

node.js - 如何在具有多个 Node 和 socket.io-redis 的 socket.io 中检查套接字是否处于事件状态(已连接)

node.js - Select mui 和对象值消失的问题

javascript - DOM 脚本和 JavaScript 是一回事吗?

javascript - 如何自定义 jquery ui 自动完成?

javascript - 使用AJAX将表单数据发布到PHP页面

javascript - 具有 ng-grid 主细节范例的 angularjs 具有多选模式

javascript - 使用 AngularJS 创建自定义属性

javascript - 2个数组angularjs的匹配内容

node.js - 如何使用 AND & OR 编写 DynamoDB 查询过滤器?