在Angular 7(2MB的json)中下载大型REST服务的结果要花费一分钟以上的时间。 Chrome调试器会以8k的片段显示下载内容,延迟为1000ms(有时还会更长)。
我尝试过使用Chrome和Firefox,没有区别。 如果我通过swagger-UI进行相同操作,则下载仅需一秒钟。因此,这似乎不是服务器端的问题。 该软件的旧版本(半年前,较旧的Angular版本)不存在此问题。
创建可观察对象的代码本质上是这样的:
return this.http[method](...params, requestOptions)
.pipe(
map((response: any) => {
this.updateToken(response.headers);
if (response.body && !isNotOmitHeaders) {
return response.body;
} else {
return response;
}
}),
catchError(this.processError)
);
和上次使用管道之间唯一的变化。
什么会导致这种延迟?是否有限制数据带宽的选项? Angular 6或7有什么变化可能导致这种情况吗?有什么建议可以进一步解决这个问题吗?
答案 0 :(得分:0)
我终于找到了问题。它在服务器端(我以为我已排除在外)。在构建json结果流时,请求中的参数稍有变化,似乎导致了其他数据库请求。当我在swagger UI中修复参数时,它也花费了这么长时间。
感谢您的帮助!