我有一个相当大的混合AngularJS / Angular应用程序,我从Angular 4升级到Angular 5,以摆脱导致过多$摘要和缓慢的UpgradeModule . 但现在我注意到,在每个AngularJS XHR请求中,Angular 5确实改变了每个降级的Angular 5组件的检测 . 由于我有相当大的表组件,变化检测量爆炸并导致严重滞后(如20秒而不是0) .

我已阅读here,NgZone可以降级并用于限制通话 .

但我想知道是否真的需要检查每个XHR请求的每个组件?

有没有办法限制这些检查或完全关闭XHR请求? (也许某些组件?)

任何其他模式可能有助于解决这个问题?

这是一个概述,显示XHR请求造成的延迟 .
enter image description here

这是放大视图的细节:
enter image description here

EDIT 它确实帮助将OnPush设置为所有组件的changeDetection,这似乎是合乎逻辑的 . 但似乎每个点击事件和XHR请求(我将更改为在此处获取以尝试避免它)会导致$ digest并且还会导致相同的调用堆栈(尽管工作量较少) . 一个例子是下面的组件:

enter image description here

@Component({
    selector: "oc-filter",
    templateUrl: "./header-filter.component.html",
    styleUrls: ["./header-filter.component.scss"],
    encapsulation: ViewEncapsulation.None,
    changeDetection: ChangeDetectionStrategy.OnPush
})

所以堆栈仍然非常相似:
enter image description here

Angular仍然会通过所有组件吗?有没有办法在早期阶段阻止这种情况?