多くのマーカー (~500) を含む Yahoo マップがあります。ページを閉じるまでマップは十分に機能しますが、ページを閉じると (Firefox で) 一時停止し、「このスクリプトの実行を停止しますか?」というメッセージが表示されます。ダイアログ (IE7)。十分な時間が与えられた場合、スクリプトはその作業を完了します。
この遅延を減らすためにできることはありますか?
この簡素化されたコードは問題を示しています。
<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>
マーカーを動的に追加および削除している場合、イベント ハンドラーでメモリ リークが発生することは認識していますが、これらは静的です (問題は関連している可能性があります)。ああ、地図上にこれほど多くのマーカーを配置するのは、データを伝える最善の方法ではないかもしれませんが、それは私が探している答えではありません ;)
編集:私が試した以下の提案に従って:
window.onbeforeunload = function() {
map.removeMarkersAll();
}
と
window.onbeforeunload = function() {
mapElement = document.getElementById('map');
mapElement.parentNode.removeChild(mapElement);
}
しかし、どちらも機能しませんでした:(