私はすでに不変データのOnPush変更検出を使用しています。 ngZone.runOutsideAngularを使用して私の変更検出を行うことができるさらなる最適化があるのだろうか?私はここでいくつかのガイドラインを探しています。既にOnPushの変更検出を使用している場合、どのような場合にrunOutsideAngularを使用する必要がありますか?
1
A
答えて
4
特に関連はありません。 OnPush
は、各コンポーネントのレベルで検出の変更を制御し、ngZone
「並べ替え」トリガはアプリケーション全体の検出を変更します。
角度使用ゾーン、特にNgZone
は、タスクがなくなるたびに通知を受けます。このゾーンでスケジュールされたタスクがこのゾーンで実行されます。したがって、setTimeout
のようなすべての非同期タスクはNgZone
の中で実行されます。 ngZone.runOutsideAngular
は、ngZone
以外のタスクをスケジュールすることができます。つまり、完了するとAngularは通知されず、変更の検出も行われません。
mousemoveイベントのように何度も何度も実行される非同期タスクがある場合は、ngZone.runOutsideAngular
を利用して、各イベントの変更検出を引き起こさないようにすることができます。その後、手動で1秒に1回の変更検出をスケジュールできます。それ以外は、アプリケーションを最適化する方法を考えることができません。
関連する問題
- 1. 既にstrictを使用している場合は警告を使用する必要がありますか?
- 2. データベースを使用していない場合、firebaseでセキュリティルールを変更する必要がありますか?
- 3. そのような場合、どのタイプのUML図を使用する必要がありますか?
- 4. 文字列の場合、どのように同期を使用する必要がありますか?
- 5. RMOを使用している場合、プッシュまたはプルサブスクリプションを使用する必要がありますか?
- 6. ++ varを使用する必要がある場合はありますか?
- 7. modリライトを使用している場合は、ProxyPassReverseを使用する必要がありますか?
- 8. JPA - 既存のエンティティを使用する場合、多対多にカスケードする必要がありますか?
- 9. <button>をどのように使用する必要がありますか? 「送信」ボタンとして使用されていない場合
- 10. このような場合に例外を使用する必要がありますか?
- 11. VSを使用しない場合は、MS Team Foundation Serverを使用する必要がありますか?
- 12. RESTfull APIの場合はCORSを使用する必要がありますか?
- 13. この場合、super().__ init __()を使用する必要がありますか?
- 14. ホストでcronジョブを使用する場合、カールファイルのパスを変更する必要がありますか?
- 15. クラスを使用してインポートする場合は、PHPDocでFQNを使用する必要がありますか?
- 16. Golang:atomic.StoreInt32を使用して1人のライターしか値を変更しない場合、複数のリーダーでatomic.LoadInt32を使用する必要がありますか?
- 17. クライアントがモバイルブラウザを使用している場合、perlでどのように検出するのですか?
- 18. コードを再利用する予定がない場合、ユーザーコントロールを使用する必要がありますか?
- 19. 型略称/エイリアスを使用する場合、なぜfunキーワードを使用する必要がありますか?
- 20. どのような場合にクライアントをより正確なURIにリダイレクトする必要がありますか
- 21. AMQP(RabbitMQ)を既に使用している場合、チャットにXMPP(またはその他のプロトコル)を使用する必要があります
- 22. VS2013とTFS2015でブランチを使用する場合、ブランチのプロジェクトファイルを変更する必要があります。
- 23. 子孫セレクタを使用する必要がある場合
- 24. ウェブサービスを使用する必要がある場合
- 25. スカラリカバリを使用する必要がある場合:
- 26. Container :: clearResolvedInstanceを使用する必要がある場合
- 27. CSS3のブラウザサポートが検出されない場合はどのようにCSS2仕様を使用しますか?
- 28. なぜクラスがlaravelエイリアスにある場合でもクラスを使用する必要がありますか?
- 29. hasOwnProperty()の代わりにin演算子を使用する必要がある場合はありますか?
- 30. GoogleのJavascript Maps APIを使用している場合、どのような制限がありますか?