2008-09-17 6 views
5

मेरे पास बहुत सारे मार्कर (~ 500) के साथ एक याहू मानचित्र है। नक्शा तब तक पर्याप्त प्रदर्शन करता है जब तक कि मैं पृष्ठ बंद नहीं करता, जिस बिंदु पर यह रोकता है (फ़ायरफ़ॉक्स में) और "इस स्क्रिप्ट को चलाने से रोकें?" संवाद (आईई 7 में)। यदि लंबे समय तक दिया जाता है तो लिपि अपना काम पूरा कर लेती है।कई मार्करों के साथ याहू मानचित्र को बंद करते समय लटकने से बचें

क्या इस देरी को कम करने के लिए मैं कुछ भी कर सकता हूं?

यह नीचे छीन कोड समस्या दर्शाती है:

<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

यदि आप इस विराम/देरी के दौरान एक डीबगर (या तो फायरबग या एमएस स्क्रिप्ट डीबगर) के साथ ब्रेक का कारण बनते हैं, तो कौन सा कोड निष्पादित हो रहा है? –

उत्तर

0

आप सह काम किया uld सभी मार्करों को हटाने का प्रयास करें, या "onbeforeunload" ईवेंट का उपयोग करके डोम से मानचित्र को हटा दें।

+0

सुझाव के लिए धन्यवाद - मैंने इन दोनों की कोशिश की (प्रश्न देखें), लेकिन बिना किसी किस्मत के। –

0

क्या आप सुनिश्चित करते हैं कि जब आप विंडो बंद करते हैं, तो मानचित्र तक पहुंचने के लिए कुछ भी प्रयास नहीं किया जाता है?

मैं परीक्षण के इस प्रकार करना चाहते हैं:

स्वयं नक़्शे तक पहुंचने के लिए एक आवरण है, और अनलोड पर,, जो अपने आप को मैप करने के आवरण ब्लॉक पहुंच है।

1

जावास्क्रिप्ट प्रोफाइलर का उपयोग करें और देखें कि कौन सा कार्य धीमा है। फिर आपको बेहतर तरीका होगा कि वर्कअराउंड कैसे करें या कम से कम महंगी सफाई को कैसे हटाएं (और इसे आईई 6 में रिसाव दें)।

संबंधित मुद्दे