Angular-google-maps: O mapa chamado em vários componentes (via routerLink) torna o aplicativo mais lento

Criado em 17 ago. 2016  ·  3Comentários  ·  Fonte: SebastianM/angular-google-maps

Descrição do problema
Eu tenho um aplicativo com vários componentes, carregados via <router-outlet> . Cada um desses componentes inclui o mapa, o que significa que cada vez que um link é clicado, um novo mapa do google é criado no <router-outlet> (mas há apenas 1 mapa por vez no aplicativo).
Parece que cada vez que um mapa é criado, ele adiciona muitos ouvintes de eventos aos elementos DOM, mas não os remove quando é destruído. Então, depois de vários links seguidos, o aplicativo fica muito lento, principalmente ao digitar entradas de formulário.

Não tenho certeza se é um bug ou se devo usar apenas um mapa no aplicativo e atualizar seus valores dependendo do componente que abro / fecho.

Comportamento atual
A digitação de entradas de aplicativos / formulários é muito lenta, os ouvintes de eventos criados pelo mapa não são removidos.

Comportamento esperado / desejado
Os ouvintes de eventos devem ser removidos e o aplicativo não deve ficar lento.

versão angular2 e angular2-google-maps
Angular 2 rc5 e angular2-google-maps 0.12.2

PRs welcome! stale discussion / question performance

Comentários muito úteis

Os ouvintes de eventos devem ser removidos e o aplicativo não deve ficar lento.

Sim, acho que removemos alguns dos ouvintes de evento, mas não tenho certeza se removemos todos os ouvintes.

2) Devemos executar chamadas do google maps fora da zona angular, pois assinamos os eventos do google maps e já os executamos na zona. Isso também deve proporcionar melhorias de desempenho.

Todos 3 comentários

Os ouvintes de eventos devem ser removidos e o aplicativo não deve ficar lento.

Sim, acho que removemos alguns dos ouvintes de evento, mas não tenho certeza se removemos todos os ouvintes.

2) Devemos executar chamadas do google maps fora da zona angular, pois assinamos os eventos do google maps e já os executamos na zona. Isso também deve proporcionar melhorias de desempenho.

Eu tenho um problema semelhante, como @gnujeremie. Quando eu crio o mapa e, em seguida, exibo algumas polilinhas, tudo vai bem (posso alternar entre a exibição de diferentes polilinhas sem problemas) até que eu vá para alguma página onde não há nenhum componente do mapa. Quando volto à página com o mapa, a página e o mapa estão funcionando muito devagar.

Quando não exibo nenhuma polilinha, o problema desaparece.

A solução temporária para mim poderia ser tornar este elemento global em visibilidade oculta - então ele será criado apenas uma vez - mas isso não é o ideal ...

Este problema foi automaticamente marcado como obsoleto porque não teve atividades recentes. Ele será fechado se nenhuma outra atividade ocorrer. Obrigado por suas contribuições.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

alexweber picture alexweber  ·  4Comentários

gizm0bill picture gizm0bill  ·  4Comentários

PeterSisovsky picture PeterSisovsky  ·  3Comentários

marcelinobadin picture marcelinobadin  ·  3Comentários

supran2811 picture supran2811  ·  4Comentários