Ich habe eine Yahoo-Karte mit vielen Markern (~ 500). Die Karte funktioniert gut genug, bis ich die Seite schließe, an dieser Stelle pausiert sie (in Firefox) und bringt ein "Stop running this script?" Dialog (in IE7). Wenn es lange genug gegeben wird, vervollständigt das Skript seine Arbeit.Vermeiden Sie, wenn Sie eine Yahoo-Karte mit vielen Markern schließen
Gibt es etwas, was ich tun kann, um diese Verzögerung zu reduzieren?
Diese abgespeckte Code zeigt das Problem:
<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>
Ich bin von einigen Speicherlecks mit den Event-Handler bewusst, wenn Sie dynamisch Hinzufügen und Entfernen von Markierungen sind, aber diese statisch sind (obwohl das Problem kann verwandt sein). Oh, und ich weiß diese viele Markierungen auf der Karte nicht der beste Weg sein können, um die Daten zu übermitteln, aber das ist nicht die Antwort, ich suche;)
Edit: Nach einem Vorschlag unten I‘ habe versucht:
window.onbeforeunload = function() {
map.removeMarkersAll();
}
und
window.onbeforeunload = function() {
mapElement = document.getElementById('map');
mapElement.parentNode.removeChild(mapElement);
}
aber weder arbeitete :(
Wenn Sie während dieser Pause/Verzögerung eine Unterbrechung mit einem Debugger (entweder Firebug oder MS Script Debugger) verursachen, welcher Code wird ausgeführt? –