使用 Angular/Node 构建概念验证项目。我已经完成了第一个任务,即“让它发挥作用”。既然 MVP 起作用了,我现在需要关注表现。延迟真的非常糟糕,我不知道如何处理或修复它。尝试了各种方法,但没有成功。
概述:
使用Node Server调用外部API获取JSON格式的数据。使用 Angular Service 进行 5 个 API 调用并在 Angular Controller 上渲染数据。有没有一种方法可以让我只进行一次 API 调用而不是 5 次?由于它进行 5 个 API 调用,因此服务器端的 CPU 处理率为 90%,以下是客户端性能:
最佳答案
如果收集一次 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/