gpt4 book ai didi

javascript - 关闭带有大量标记的雅虎 map 时避免挂起

转载 作者:搜寻专家 更新时间:2023-11-01 04:39:13 26 4
gpt4 key购买 nike

我有一张 Yahoo map ,上面有很多标记 (~500)。在我关闭页面之前 map 表现良好,此时它暂停(在 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>

我知道如果您动态添加和删除标记,事件处理程序会发生一些内存泄漏,但这些是静态的(尽管问题可能是相关的)。哦,我知道 map 上有这么多标记可能不是传达数据的最佳方式,但这不是我要寻找的答案;)

编辑:按照下面的建议,我尝试了:

window.onbeforeunload = function() {
map.removeMarkersAll();
}

window.onbeforeunload = function() {
mapElement = document.getElementById('map');
mapElement.parentNode.removeChild(mapElement);
}

但都不起作用:(

最佳答案

使用 Javascript profiler 看看哪个函数慢。然后您将更好地了解如何制定解决方法或至少如何删除昂贵的清理(并让它在 IE6 中泄漏)。

关于javascript - 关闭带有大量标记的雅虎 map 时避免挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/81768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com