JS do Google Maps JS v3 - árvore DOM desanexada - vazamento de memória?
Eu tenho o seguinte problema. Estou removendo todas as referências a uma instância do Google Maps, incluindo marcadores por meio dosetMap(null)
opção através do seguinte código:
destroyMaps = function () {
leftMap = null;
window.map = null;
geocoder = null;
for (var i=0; i<window.rightMarkers.length; i++) {
window.rightMarkers[i].setMap(null);
window.rightMarkers[i] = null;
}
window.rightMarkers = null;
$("#map-canvas-right").remove();
for (var i=0; i<window.leftMarkers.length; i++) {
window.leftMarkers[i].setMap(null);
window.leftMarkers[i] = null;
}
window.leftMarkers = null;
$("#map-canvas-left").remove();
}
As únicas coisas que fazem referêncialeftMap
ouwindow.map
no meu código inteiro é:
window.map
var marker = new google.maps.Marker({
position: myLatlng,
map: window.map,
icon: window.pins[keyword_category.category_name],
shadow: window.pins["Shadow"],
title:job.job_title
});
marker.job_type = keyword_category.category_name;
window.rightMarkers.push(marker);
ParaleftMap
var marker = new google.maps.Marker({
position: myLatlng,
map: leftMap,
icon: window.pins[keyword_category.category_name],
shadow: window.pins["Shadow"],
title:job.job_title
});
window.leftMarkers.push(marker);
No entanto, na minha árvore DOM desanexada, ao comparar antes da criação dos mapas / após a destruição, permanecem os blocos do Google Maps:
(Clique com o botão direito do mouse - abra a imagem para ver em tamanho maior)
O que posso fazer para descobrir o que está causando esse vazamento do DOM?