Angular-google-maps: 在多个组件中调用的地图(通过 routerLink)会减慢应用程序的速度

创建于 2016-08-17  ·  3评论  ·  资料来源: SebastianM/angular-google-maps

问题描述
我有一个包含多个组件的应用程序,通过<router-outlet>加载。 这些组件中的每一个都包含地图,这意味着每次单击链接时,都会在<router-outlet>中创建一个新的谷歌地图(但应用程序中一次只有一张地图)。
似乎每次创建地图时,它都会在 DOM 元素上添加大量事件侦听器,但在销毁时不会删除它们。 然后,经过几个链接后,应用程序非常缓慢,尤其是在输入表单时。

我不确定这是否是一个错误,或者我是否应该在应用程序中只使用一张地图,并根据我打开/关闭的组件更新其值。

当前行为
应用程序/表单输入输入非常慢,地图创建的事件侦听器不会被删除。

预期/期望行为
应删除事件侦听器,并且不应减慢应用程序的速度。

angular2 和 angular2-google-maps 版本
Angular 2 rc5 & angular2-google-maps 0.12.2

PRs welcome! stale discussion / question performance

最有用的评论

应删除事件侦听器,并且不应减慢应用程序的速度。

是的,我想我们删除了一些事件侦听器,但我不确定我们是否已经删除了所有侦听器。

2) 我们应该在 Angular Zone 之外运行 google maps 调用,因为我们订阅了 google maps 事件并已经在该区域中运行它。 这也应该提供性能改进。

所有3条评论

应删除事件侦听器,并且不应减慢应用程序的速度。

是的,我想我们删除了一些事件侦听器,但我不确定我们是否已经删除了所有侦听器。

2) 我们应该在 Angular Zone 之外运行 google maps 调用,因为我们订阅了 google maps 事件并已经在该区域中运行它。 这也应该提供性能改进。

我有类似@gnujeremie 的问题。 当我创建地图然后显示一些折线时,一切顺利(我可以在不同折线的显示之间切换而不会遇到任何麻烦),直到我转到某个没有地图组件的页面。 当我返回带有地图的页面时,页面和地图的工作速度非常慢。

当我不显示任何折线时,问题就会消失。

对我来说临时解决方案可以使这个元素在可见性中全局隐藏 - 所以它只会被创建一次 - 但这并不理想......

此问题已自动标记为过时,因为它最近没有活动。 如果没有进一步的活动发生,它将被关闭。 感谢你的贡献。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

mensch picture mensch  ·  3评论

PeterSisovsky picture PeterSisovsky  ·  3评论

Subhojit1992 picture Subhojit1992  ·  3评论

stot3 picture stot3  ·  3评论

maneesht picture maneesht  ·  3评论