私はAngular2のアプリケーションを持っています。これはSignalRサービスに接続し、定期的な更新を受け取ります(10秒ごと)。これらの更新は、エフェクタを介してコンポーネントへのangualrサービスから放出されます。 新しいデータが入ったときにUIが常に更新されていないことに気付きました。時には10秒ほどの遅延がありました。Angular2、ZonesとChangeDetectorRefは、受信したデータを強制的に更新します。
は、この問題を回避するために、私は基本的に私も同じことを達成するためにゾーンを使用している部品でdetectChanges()への呼び出し...
this._signalrService.onGetData.subscribe((data: any) => {
// update some data properties
this._cd.detectChanges();
});
...
this._signalrService.onGetData.subscribe((data: any) => {
this._ngZone.run(() => {
// update some data properties
});
});
を追加しましたコンポーネントがデータを受け取ったときに強制的に更新したいです。
いずれかの方法でこれを行うのが正しいですか?ゾーンを別の場所に配置する必要がありますか?