角度解析器的性能问题

问题描述

我正在创建应用程序的Dashboard组件,其中包含2个子组件,这些子组件也具有子组件(请参见下图)。

enter image description here

所有这些组件都有(8)个HTTP请求,这些请求连接到不同的端点,以便能够显示适当的数据(统计信息)并且很大。现在我遇到了性能不佳的问题。

用户位于仪表板中且正在加载内容正在进行HTTP请求)并决定移至另一个组件(例如“用户页面)时,所有HTTP请求都会被取消,如从浏览器的“调试网络”标签中看到的那样。并且 resolver 获取更新的用户详细信息的UserResolver)http请求以待处理状态出现。

现在的问题是,请求完成并转移到路线更改需要花费一些时间。我已经检查了后端Web服务器日志,尽管浏览器处于待处理状态,但该状态尚未反映到日志中。

在这里的假设是,Angular不会立即“在路线更改时”启动解析器的http请求。如果是即时的,那么我应该可以从Web服务器上看到日志了吗?

解决方法

答案1:-

在调用多个API时,需要使用 forkJoin RXJS方法。 例如:-

let userData = this.userService.getUserList();
let analyticsData = this.analyticService.getUserAnalyticsData();
...
...

forkJoin([userData,analyticsData]).subscribe(res =>{
this.userDatas = res[0];
this.analyticsDatas = res[1];
}

答案2:-

您必须使用 forkJoin 方法立即订阅API调用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...