2008-09-17 1 views
5

야후지도에는 많은 마커 (~ 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); 
} 

을하지만, 어느 쪽 :(

+0

일시 중지/지연 중에 디버거 (방화 광 또는 MS 스크립트 디버거)를 사용하여 중단 시키면 어떤 코드가 실행됩니까? –

답변

0

당신의 공동 작업 : 시도했다 모든 마커를 제거하거나 심지어 "onbeforeunload"이벤트를 사용하여 DOM에서지도를 제거하십시오.

+0

제안 해 주셔서 감사합니다. - 나는이 두 가지 (질문 참조)를 시도했지만 운이 없었습니다. –

0

창을 닫을 때지도에 액세스하는 데 아무런 어려움이 없습니까?

내가 테스트 이런 종류의 할 거라고 :

가 언로드에,지도 자체에 도달하는 래퍼가 있고, 그 자체를 매핑하는 래퍼 블록에 액세스 할 수 있습니다.

1

자바 스크립트 프로파일 러를 사용하여 느린 기능을 확인하십시오. 그런 다음 해결 방법을 만드는 방법이나 값 비싼 정리를 제거하는 방법을 더 잘 이해할 수 있습니다 (IE6에서 누출되도록하십시오).

관련 문제