角度变化检测机制过于频繁地发生

时间:2018-01-18 17:35:52

标签: javascript angular angular5

在我的一个控制器中,我有:

idWedstrijdSpeler

并根据窗口宽度,我渲染不同的视图。其中一个需要做一些计算。 但是由于更改检测机制过于频繁地触发,这确实会减慢应用程序的速度,并且会有延迟。

这种情况如何管理得最好?

1 个答案:

答案 0 :(得分:2)

这与角度变化检测无关,它是经常发生的调整大小事件

@HostListener()目前也不适合列出经常发出的事件https://github.com/angular/angular/issues/13248

您可以使用

constructor(private zone: NgZone) {
  this.zone.runOutsideAngular(() => {
    Observable.fromEvent(window, 'resize')
        .debounceTime(100)
        .subscribe((event) => {
          this.zone.run(() => {
            this.currentWindowWidth = window.innerWidth;
          });
        });
  });
}