У меня есть карта Google, работающая со скриптами (jQuery) и использующая маркеры и полигоны из множества веб-сервисов RESTful, развернутых на том же сервере. Кажется, что все работает нормально, но после нескольких минут запуска симуляции (просто перерисовывание оверлеев через n секунд с помощью функции setInterval
) мой компьютер выключается! Я даже не получаю Синий экран смерти (BSoD), компьютер просто выключается!
Я понял, что это как-то связано с памятью (удаление других оверлейных кодов занимает больше времени). Я думаю, что освободил память, как вы можете видеть в этом фрагменте, но я не уверен. Чего мне не хватает?
function deleteOverlay(overl) {
if (overl)
{
for (i in overl)
{
overl[i].setMap(null);
}
overl.length = 0;
overl = [];
}
}
function populate(map) {
var infowindow = new google.maps.InfoWindow({content: ''});
jQuery.get("/MyServiceRESTful/resources/passengers/", {}, function (data) {
deleteOverlay(passengersArray);
jQuery(data).find("passenger").each(function () {
var marker = jQuery(this);
var idtxt = marker.attr("id");
var sntxt = marker.attr("snippet");
var location = marker.attr("lat")+', '+marker.attr("lng");
var latlng = new google.maps.LatLng(parseFloat(marker.attr("lat")),parseFloat(marker.attr("lng")));
var marker = new google.maps.Marker({
position : latlng,
map : map,
title : marker.attr("id") + " [" + marker.attr("snippet") + "]",
animation : google.maps.Animation.NONE,
icon : passengermarker
});
var contentString = 'Hi';
google.maps.event.addListener(marker, 'mouseover', function () {
infowindow.content = contentString;
infowindow.open(map, marker);
});
passengersArray.push(marker);
});
});
//More similar calls
}