У меня есть карта Yahoo с большим количеством маркеров (~ 500). Карта работает достаточно хорошо, пока я не закрою страницу, после чего она приостанавливается (в Firefox) и вызывает «Прекратить запуск этого скрипта»? диалога (в IE7). Если дано достаточно долго, скрипт завершает свою работу.Избегайте повесить при закрытии карты Yahoo с большим количеством маркеров
Есть ли что-нибудь, что я могу сделать, чтобы уменьшить эту задержку?
Это урезанная код демонстрирует проблему:
<script type="text/javascript">
var map = new YMap(document.getElementById('map'));
map.drawZoomAndCenter("Algeria", 17);
for (var i = 0; i < 500; i += 1) {
var geoPoint = new YGeoPoint((Math.random()-0.5)*180.0, (Math.random()-0.5)*360.0);
var marker = new YMarker(geoPoint);
map.addOverlay(marker);
}
</script>
Я знаю некоторых утечек памяти с использованием обработчиков событий, если вы динамически добавляя и удаляя маркеры, но они статичны (хотя проблема может связаны). О, и я знаю это много маркеров на карте не может быть лучшим способом для передачи данных, но это не тот ответ, я ищу;)
Edit: По предложению ниже я пробовал:
window.onbeforeunload = function() {
map.removeMarkersAll();
}
и
window.onbeforeunload = function() {
mapElement = document.getElementById('map');
mapElement.parentNode.removeChild(mapElement);
}
но ни работал :(
Если вы вызываете разрыв с отладчиком (Firebug или MS Script Debugger) во время этой паузы/задержки, какой код выполняется? – 2008-10-21 03:58:48