2011-12-22 13 views
5

मैं निम्नलिखित HTML टैग का उपयोग गूगल मैप्स एपीआई लोड करने के लिए:गूगल मैप्स पुस्तकालय लोड हो रहा है ब्लॉक पेज

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 

हालांकि, यह लोड हो रहा है सब कुछ HTML में नीचे है कि जब तक स्क्रिप्ट के द्वारा लोड किया जाता है ब्लॉक कर रहा है ब्राउज़र

क्या यह लोडिंग गैर-अवरुद्ध करने का कोई तरीका है?

उत्तर

3

हां, आप इसे असीमित रूप से लोड कर सकते हैं। दस्तावेज़ों के इस भाग को देखें: http://code.google.com/apis/maps/documentation/javascript/basics.html#Async

+2

"Async" खंड प्रलेखन से हटा दिया गया प्रतीत होता है ... [इस पृष्ठ] को देख रहा है (https://google-developers.appspot.com/maps/documentation/javascript/examples/map-simple- async), स्रोत में Google मानचित्र लाइब्रेरी –

4

यह कोड आपको एक डिफर फ़ंक्शन देता है जो एक यूआरएल और वैकल्पिक कॉलबैक लेता है। यह पृष्ठ प्रतिपादन को अवरुद्ध किए बिना आपकी स्क्रिप्ट को असीमित रूप से लोड करता है। मैंने सुरक्षा में रखा है, इसलिए यह दो बार एक ही स्क्रिप को लोड नहीं करेगा, इसलिए आप इसे जितनी बार चाहें उतनी बार बुला सकते हैं।

defer = (function() { 
    var urls = []; 

    return function (url, callback) { 
     var inc; 

     if (url && urls.indexOf(url) === -1) { 
      inc = document.createElement('script'); 
      inc.async = true; 
      inc.src = url; 
      inc.onload = callback || function() {}; 
      document.getElementsByTagName('head')[0].appendChild(inc); 
     } 
    } 
}()); 

defer('http://maps.google.com/maps/api/js?sensor=false'); 

यह किसी बाहरी जावास्क्रिप्ट के लिए काम करता है जो एसिंक लोडिंग में विफल नहीं होता है।

+0

की एसिंक्रोनस लोडिंग का नमूना शामिल है, इस महान टिप के लिए धन्यवाद, लेकिन मैं इस मामले में "आधिकारिक" तरीका का उपयोग करूंगा –

+0

यह वही बात है। मेरा सिर्फ आपको एक ऐसा फ़ंक्शन देता है जो Google नक्शे के बजाय मनमाने ढंग से यूआरएल लोड कर सकता है। – Munter

+0

@Munter यह कोई स्थिति है कि कुछ स्क्रिप्ट के लिए async लोडिंग विफल रहता है? मैं इस प्रश्न को आपके उत्तर में आपकी आखिरी पंक्ति के संबंध में पूछ रहा हूं। –

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