Angular-google-maps: La carte appelée dans plusieurs composants (via routerLink) ralentit l'application

Créé le 17 août 2016  ·  3Commentaires  ·  Source: SebastianM/angular-google-maps

Description du problème
J'ai une application avec plusieurs composants, chargée via <router-outlet> . Chacun de ces composants comprend la carte, ce qui signifie qu'à chaque clic sur un lien, une nouvelle carte google est créée dans le <router-outlet> (mais il n'y a qu'une seule carte à la fois dans l'application).
Il semble que chaque fois qu'une carte est créée, elle ajoute beaucoup d'écouteurs d'événements sur les éléments du DOM, mais ne les supprime pas lorsqu'elle est détruite. Ensuite, après plusieurs liens suivis, l'application est très lente, notamment lors de la saisie des entrées de formulaire.

Je ne sais pas s'il s'agit d'un bogue ou si je dois utiliser une seule carte dans l'application et mettre à jour ses valeurs en fonction du composant que j'ouvre/ferme.

Comportement actuel
La saisie des entrées d'application/formulaire est très lente, les écouteurs d'événements créés par la carte ne sont pas supprimés.

Comportement attendu/souhaité
Les écouteurs d'événements doivent être supprimés et l'application ne doit pas être ralentie.

version angular2 et angular2-google-maps
Angular 2 rc5 & angular2-google-maps 0.12.2

PRs welcome! stale discussion / question performance

Commentaire le plus utile

Les écouteurs d'événements doivent être supprimés et l'application ne doit pas être ralentie.

Oui, je pense que nous avons supprimé certains des écouteurs d'événement, mais je ne suis pas sûr que nous ayons supprimé tous les écouteurs.

2) Nous devrions exécuter des appels google maps en dehors de la zone angulaire, car nous nous abonnons aux événements google maps et les exécutons déjà dans la zone. Cela devrait également améliorer les performances.

Tous les 3 commentaires

Les écouteurs d'événements doivent être supprimés et l'application ne doit pas être ralentie.

Oui, je pense que nous avons supprimé certains des écouteurs d'événement, mais je ne suis pas sûr que nous ayons supprimé tous les écouteurs.

2) Nous devrions exécuter des appels google maps en dehors de la zone angulaire, car nous nous abonnons aux événements google maps et les exécutons déjà dans la zone. Cela devrait également améliorer les performances.

J'ai un problème similaire à celui de @gnujeremie. Lorsque je crée une carte et que j'affiche des polylignes, tout se passe bien (je peux basculer entre l'affichage de différentes polylignes sans aucun problème) jusqu'à ce que j'aille à une page où il n'y a pas de composant de carte. Lorsque je reviens à la page avec la carte, la page et la carte fonctionnent très lentement.

Lorsque je n'affiche aucune polyligne, le problème disparaît.

La solution temporaire pour moi pourrait être de rendre cet élément global en visibilité caché - il ne sera donc créé qu'une seule fois - mais ce n'est pas idéal...

Ce problème a été automatiquement marqué comme obsolète car il n'a pas eu d'activité récente. Il sera fermé si aucune autre activité ne se produit. Merci pour vos contributions.

Cette page vous a été utile?
0 / 5 - 0 notes