javascript - 销毁 map 实例的正确方法是什么?

标签 javascript google-maps-api-3

我最近开发了一个 html5 移动应用程序。该应用程序是单个页面,其中导航哈希更改事件替换了整个 DOM。该应用程序的一部分是使用 API v3 的 Google map 。在从 DOM 中删除 map div 之前,我想删除所有事件处理程序/监听器并释放尽可能多的内存,因为用户可能不会再次返回该部分。

销毁 map 实例的最佳方法是什么?

最佳答案

我在这个问题上添加了第二个答案,因为我不想删除我们通过对我之前的答案的后续评论来来回回。

但是我最近发现了一些直接解决您问题的信息,所以我想分享一下。我不知道你是否意识到这一点,但在 Google Maps API Office Hours May 9 2012 Video 期间、来自 Google 的 Chris Broadfoot 和 Luke Mahe 讨论了来自 stackoverflow 的这个问题。如果您将视频播放设置为 12:50,那是他们讨论您的问题的部分。

基本上,他们承认这是一个错误,但还补充说,他们并不真正支持涉及创建/销毁连续 map 实例的用例。他们强烈建议创建 map 的单个实例并在此类任何场景中重复使用它。他们还讨论了将 map 设置为 null,并明确删除事件监听器。您表达了对事件监听器的担忧,我认为只需将 map 设置为 null 就足够了,但看起来您的担忧是有道理的,因为他们专门提到了事件监听器。他们还建议完全删除包含 map 的 DIV。

无论如何,只是想传递这个并确保它包含在 stackoverflow 讨论中并希望它对您和其他人有所帮助-

关于javascript - 销毁 map 实例的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10485582/

相关文章:

javascript - 如何递归创建给定值的数组?

javascript - 获取数据时使用 useEffect 和 useContext

javascript - 如何在 Netsuite Checkout 2.03 中添加销售描述字段

javascript - 停止和启动页面溢出/单击时滚动的能力

javascript - 可缩放 Canvas 作为 Google Maps Javascript API 中的叠加层

android - Google Places API 在 recyclerview 上显示照片

javascript - 如何使用 dburles 显示热图 :google-maps Meteor package?

javascript - 将图例名称添加到 JQPlot 工具提示并在工具提示中正确设置日期格式

javascript - react 谷歌地图 : Marker resizes after zooming

php - 在 MySQL Maps v3 中保存标记