2017-07-13 10 views

答えて

4

特に関連はありません。 OnPushは、各コンポーネントのレベルで検出の変更を制御し、ngZone「並べ替え」トリガはアプリケーション全体の検出を変更します。

角度使用ゾーン、特にNgZoneは、タスクがなくなるたびに通知を受けます。このゾーンでスケジュールされたタスクがこのゾーンで実行されます。したがって、setTimeoutのようなすべての非同期タスクはNgZoneの中で実行されます。 ngZone.runOutsideAngularは、ngZone以外のタスクをスケジュールすることができます。つまり、完了するとAngularは通知されず、変更の検出も行われません。

mousemoveイベントのように何度も何度も実行される非同期タスクがある場合は、ngZone.runOutsideAngularを利用して、各イベントの変更検出を引き起こさないようにすることができます。その後、手動で1秒に1回の変更検出をスケジュールできます。それ以外は、アプリケーションを最適化する方法を考えることができません。

関連する問題