我有一个相当大的混合AngularJS / Angular应用程序,我从Angular 4升级到Angular 5以摆脱导致过多$摘要和缓慢的UpgradeModule。但现在我注意到,在每个AngularJS XHR请求中,Angular 5确实改变了每个降级的Angular 5组件的检测。由于我有相当大的表组件,变化检测量会爆炸并导致严重滞后(如20秒而不是0)。
我已阅读here,可以降级NgZone并用于限制通话。
但我想知道是否真的需要检查每个XHR请求的每个组件?
有没有办法限制这些检查或完全关闭XHR请求? (对于某些组件或许?)
任何其他模式可能有助于解决此问题?
修改 它确实有助于将OnPush设置为所有组件的changeDetection,这似乎是合乎逻辑的。但似乎每个点击事件和XHR请求(我将更改为在此处获取以尝试避免它)会导致$ digest并且还会导致相同的调用堆栈(尽管工作量较少)。一个例子是下面的组件:
@Component({
selector: "oc-filter",
templateUrl: "./header-filter.component.html",
styleUrls: ["./header-filter.component.scss"],
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush
})
Angular仍然会通过所有组件吗? 有没有办法在早期阶段阻止这种情况?