我有一个带有很多标记(〜500)的雅虎地图。在我关闭页面之前,地图的性能足够好,此时它会暂停(在 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);
}
但都没有工作:(