【发布时间】:2014-05-20 07:48:59
【问题描述】:
我一次使用多张传单地图。它们可以动态创建和删除。但是,当使用 map.remove() 销毁地图时,会出现内存泄漏。出现分离的 DOM 树。您可以在 Chrome 开发工具中看到它。
我用来重新创建 div 和 map 的示例函数:
var map, mapDiv;
recreateMap = function(){
// destroy previous map and div
if(map) map.remove();
if(mapDiv) mapDiv.parentNode.removeChild(mapDiv);
// create new map div
var randomDivId = 'mapId' + new Date().getTime();
mapDiv = document.createElement('div');
mapDiv.id = randomDivId;
mapDiv.style.height = '200px';
mapDiv.style.width = '200px';
document.getElementsByTagName('body')[0].appendChild(mapDiv);
// attach map to div
map = L.map(randomDivId).setView([51.505, -0.09], 13);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png').addTo(map);
map.invalidateSize();
};
如何正确销毁传单地图?
【问题讨论】:
标签: leaflet