Angular-google-maps: (routerLinkを介して)いくつかのコンポーネントで呼び出されたマップはアプリを遅くします

作成日 2016年08月17日  ·  3コメント  ·  ソース: SebastianM/angular-google-maps

問題の説明
<router-outlet>介してロードされたいくつかのコンポーネントを備えたアプリケーションがあります。 これらの各コンポーネントにはマップが含まれています。つまり、リンクがクリックされるたびに、新しいgoogleマップが<router-outlet>に作成されます(ただし、アプリケーションには一度に1つのマップしかありません)。
マップが作成されるたびに、DOM要素に多くのイベントリスナーが追加されるようですが、マップが破棄されても削除されません。 次に、いくつかのリンクをたどった後、特にフォーム入力を入力するときに、アプリケーションが非常に遅くなります。

それがバグなのか、それともアプリケーションで1つのマップのみを使用し、開いたり閉じたりするコンポーネントに応じてその値を更新する必要があるのか​​どうかはわかりません。

現在の動作
アプリケーション/フォーム入力の入力は非常に遅く、マップによって作成されたイベントリスナーは削除されません。

期待される/望ましい動作
イベントリスナーを削除する必要があり、アプリケーションの速度を低下させないでください。

angle2&angular2-google-mapsバージョン
Angular 2 rc5&angular2-google-maps 0.12.2

PRs welcome! stale discussion / question performance

最も参考になるコメント

イベントリスナーを削除する必要があり、アプリケーションの速度を低下させないでください。

ええ、イベントリスナーの一部を削除したと思いますが、すべてのリスナーを削除したかどうかはわかりません。

2)グーグルマップイベントをサブスクライブし、すでにゾーンで実行しているため、アンギュラーゾーンの外でグーグルマップ呼び出しを実行する必要があります。 これにより、パフォーマンスも向上するはずです。

全てのコメント3件

イベントリスナーを削除する必要があり、アプリケーションの速度を低下させないでください。

ええ、イベントリスナーの一部を削除したと思いますが、すべてのリスナーを削除したかどうかはわかりません。

2)グーグルマップイベントをサブスクライブし、すでにゾーンで実行しているため、アンギュラーゾーンの外でグーグルマップ呼び出しを実行する必要があります。 これにより、パフォーマンスも向上するはずです。

@gnujeremieのような同様の問題があります。 マップを作成してからいくつかのポリラインを表示すると、マップコンポーネントがないページに移動するまで、すべてがうまくいきます(異なるポリラインの表示を問題なく切り替えることができます)。 地図のあるページに戻ると、ページと地図の動作が非常に遅くなっています。

ポリラインを表示しないと、問題が消えます。

私にとっての一時的な解決策は、この要素を可視性でグローバルに非表示にすることです-したがって、一度だけ作成されます-しかし、それは理想的ではありません...

この問題は、最近のアクティビティがないため、自動的に古いものとしてマークされています。 それ以上のアクティビティが発生しない場合は閉じられます。 貢献していただきありがとうございます。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

Subhojit1992 picture Subhojit1992  ·  3コメント

n1t3w0lf picture n1t3w0lf  ·  3コメント

alexweber picture alexweber  ·  4コメント

Halynsky picture Halynsky  ·  3コメント

stot3 picture stot3  ·  3コメント