Angular-google-maps: Karte in mehreren Komponenten aufgerufen (über RouterLink) verlangsamt die App

Erstellt am 17. Aug. 2016  ·  3Kommentare  ·  Quelle: SebastianM/angular-google-maps

Fehlerbeschreibung
Ich habe eine Anwendung mit mehreren Komponenten, geladen über <router-outlet> . Jede dieser Komponenten enthält die Karte, was bedeutet, dass jedes Mal, wenn auf einen Link geklickt wird, eine neue Google-Karte im <router-outlet> (aber es gibt immer nur 1 Karte in der Anwendung).
Es scheint, dass jedes Mal, wenn eine Karte erstellt wird, viele Ereignis-Listener zu den DOM-Elementen hinzugefügt werden, sie jedoch nicht entfernt werden, wenn sie zerstört werden. Dann, nachdem mehrere Links gefolgt sind, ist die Anwendung sehr langsam, insbesondere bei der Eingabe von Formulareingaben.

Ich bin mir nicht sicher, ob es sich um einen Fehler handelt oder ob ich nur eine Karte in der Anwendung verwenden und ihre Werte abhängig von der Komponente aktualisieren sollte, die ich öffne/schließe.

Aktuelles Verhalten
Die Eingabe von Anwendungs-/Formulareingaben ist sehr langsam, von der Karte erstellte Ereignis-Listener werden nicht entfernt.

Erwartetes/gewünschtes Verhalten
Ereignislistener sollten entfernt werden, und die Anwendung sollte nicht verlangsamt werden.

angle2 & angle2-google-maps-version
Angular 2 rc5 & angle2-google-maps 0.12.2

PRs welcome! stale discussion / question performance

Hilfreichster Kommentar

Ereignislistener sollten entfernt werden, und die Anwendung sollte nicht verlangsamt werden.

Ja, ich glaube, wir haben einige der Ereignis-Listener entfernt, aber ich bin mir nicht sicher, ob wir alle Listener entfernt haben.

2) Wir sollten Google Maps-Anrufe außerhalb der Angular Zone ausführen, da wir Google Maps-Ereignisse abonnieren und sie bereits in der Zone ausführen. Dies sollte auch zu Leistungsverbesserungen führen.

Alle 3 Kommentare

Ereignislistener sollten entfernt werden, und die Anwendung sollte nicht verlangsamt werden.

Ja, ich glaube, wir haben einige der Ereignis-Listener entfernt, aber ich bin mir nicht sicher, ob wir alle Listener entfernt haben.

2) Wir sollten Google Maps-Anrufe außerhalb der Angular Zone ausführen, da wir Google Maps-Ereignisse abonnieren und sie bereits in der Zone ausführen. Dies sollte auch zu Leistungsverbesserungen führen.

Ich habe ein ähnliches Problem wie @gnujeremie. Wenn ich eine Karte erstelle und dann einige Polylinien anzeigt, geht alles gut (ich kann ohne Probleme zwischen der Anzeige verschiedener Polylinien wechseln), bis ich zu einer Seite gehe, auf der keine Kartenkomponente vorhanden ist. Wenn ich zur Seite mit Karte zurückkehre, arbeiten Seite und Karte sehr langsam.

Wenn ich keine Polylinien zeige, verschwindet das Problem.

Eine vorübergehende Lösung für mich könnte sein, dieses Element global in der Sichtbarkeit auszublenden - es wird also nur einmal erstellt - aber das ist nicht ideal ...

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität hatte. Es wird geschlossen, wenn keine weitere Aktivität stattfindet. Vielen Dank für Ihre Beiträge.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

matishw picture matishw  ·  3Kommentare

alexweber picture alexweber  ·  4Kommentare

Halynsky picture Halynsky  ·  3Kommentare

PeterSisovsky picture PeterSisovsky  ·  3Kommentare

Subhojit1992 picture Subhojit1992  ·  3Kommentare