Angular-google-maps: El mapa llamado en varios componentes (a través de routerLink) ralentiza la aplicación

Creado en 17 ago. 2016  ·  3Comentarios  ·  Fuente: SebastianM/angular-google-maps

Descripcion del problema
Tengo una aplicación con varios componentes, cargada a través de <router-outlet> . Cada uno de estos componentes incluye el mapa, lo que significa que cada vez que se hace clic en un enlace, se crea un nuevo mapa de Google en el <router-outlet> (pero solo hay 1 mapa a la vez en la aplicación).
Parece que cada vez que se crea un mapa, agrega muchos eventos de escucha en los elementos DOM, pero no los elimina cuando se destruye. Luego, después de varios enlaces seguidos, la aplicación es muy lenta, particularmente al escribir entradas de formulario.

No estoy seguro de si es un error, o si debo usar solo un mapa en la aplicación y actualizar sus valores dependiendo del componente que abro / cierro.

Comportamiento actual
La escritura de entradas de aplicaciones / formularios es muy lenta, los oyentes de eventos creados por el mapa no se eliminan.

Comportamiento esperado / deseado
Los detectores de eventos deben eliminarse y la aplicación no debe ralentizarse.

versión angular2 y angular2-google-maps
Angular 2 rc5 y angular2-google-maps 0.12.2

PRs welcome! stale discussion / question performance

Comentario más útil

Los detectores de eventos deben eliminarse y la aplicación no debe ralentizarse.

Sí, creo que eliminamos algunos de los oyentes de eventos, pero no estoy seguro de haber eliminado a todos los oyentes.

2) Deberíamos ejecutar las llamadas de Google Maps fuera de la Zona Angular, ya que nos suscribimos a los eventos de Google Maps y ya lo ejecutamos en la zona. Esto también debería proporcionar mejoras de rendimiento.

Todos 3 comentarios

Los detectores de eventos deben eliminarse y la aplicación no debe ralentizarse.

Sí, creo que eliminamos algunos de los oyentes de eventos, pero no estoy seguro de haber eliminado a todos los oyentes.

2) Deberíamos ejecutar las llamadas de Google Maps fuera de la Zona Angular, ya que nos suscribimos a los eventos de Google Maps y ya lo ejecutamos en la zona. Esto también debería proporcionar mejoras de rendimiento.

Tengo un problema similar como @gnujeremie. Cuando creo un mapa y luego muestro algunas polilíneas, todo va bien (puedo cambiar entre la visualización de diferentes polilíneas sin ningún problema) hasta que voy a alguna página donde no hay ningún componente de mapa. Cuando vuelvo a la página con el mapa, la página y el mapa funcionan muy lentamente.

Cuando no visualizo ninguna polilínea, el problema desaparece.

La solución temporal para mí podría ser hacer que este elemento sea global en visibilidad oculto, por lo que se creará solo una vez, pero eso no es ideal ...

Este problema se ha marcado automáticamente como obsoleto porque no ha tenido actividad reciente. Se cerrará si no se produce más actividad. Gracias por sus aportaciones.

¿Fue útil esta página
0 / 5 - 0 calificaciones