如何从页面中取消设置谷歌地图
How to unset Google Maps from the page?
我正在尝试使用谷歌地图API。
我的HTML代码看起来像:<div id="map-1"></div>
我使用一些JS在页面上初始化地图,几乎类似于这个:
var mapInstance = new google.maps.Map(document.getElementById('map-1'));
效果很好。
问题是,我需要在同一页面上多次添加和删除地图(当用户单击相应的链接时)。
我还没有找到任何关于如何从页面中删除地图-与所有的html变化和事件它带来的初始化https://developers.google.com/maps/documentation/javascript/reference
有一些方法,如clearInstanceListeners
,这可能主要与点和覆盖有关,而不是地图本身(我想它应该删除缩放/缩小,双击和其他事件)。我试过google.maps.event.clearInstanceListeners(mapInstance);
之类的东西。它不工作-我的地图没有丢失任何事件。
我问这个的原因是内存泄漏。我想,如果我在我的页面上创建了近50个地图而没有成功地销毁它们,我的页面将使用太多的内存(因为如果只删除一个HTML,事件仍然在内存中),因此,页面的整体性能将大大降低。
你对如何解决这个问题有什么想法吗?我也看到了一个主题谷歌地图JavaScript API V3 -卸载/解构/删除/删除
他们建议使用jQuery.remove()
。
我认为这个案子不适合我,因为:
1)我只是不使用jQuery在我的项目
2) remove
方法只从jQuery的缓存中删除事件(由jQuery绑定的事件)
我最近遇到了同样的问题。首先,你试过吗?它不会每次都以内存泄漏结束……在你的电脑上测试应该很快。
无论如何,在我的情况下,我解决了内存泄漏问题,只更新数据(我使用热图覆盖),并一直保持相同的谷歌地图。我不确定这正是你所期望的,但希望它能帮助…
- j查询如何设置/取消设置下拉菜单的背景颜色
- 搜索包含值的json对象键,然后取消设置
- 元素单击处理程序由一个神秘的函数取消设置
- JavaScript变量在第二次单击事件时间后取消设置
- Chrome和Firefox不会取消设置会话数组,但IE和Safari会取消设置
- 在javascript if语句中取消设置$_POST
- 如何删除或取消设置Javascript变量
- 通过javascript函数取消设置php数组元素
- 取消设置元素可见性,更改 innerHTML,然后转换回来
- 我们是否需要在 JavaScript 中“取消设置”变量?
- 在 PHP 中关闭网页时如何取消设置会话
- 如何在页面关闭时取消设置会话
- Javascript;取消设置函数
- 模式关闭后取消设置 PHP 变量
- 如何“取消设置”Dojo 日期文本框默认值
- 删除值时未取消设置的数组 - 或获取数组计数的最佳方式
- 初始化后取消设置所有自定义Javascript对象
- 如何从Drupal6安装中取消设置js文件:不´t与“;删除脚本[]”;在我的模板文件中
- 动态设置、取消设置和清除全局变量
- 取消设置对象属性