2013-02-26 54 views
0

我目前使用的谷歌地圖API的腳本:谷歌地圖API後備

function loadScript() { 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src = "https://maps.googleapis.com/maps/api/js?v=3.exp&key=KEY&sensor=false&callback=callback"; 
    document.body.appendChild(script); 
} 

我已經使用了應答statuscallback有一個後備,但如何建立一個後備的情況下說的API不可達出於任何原因,即當上面的腳本沒有加載?

另外,這是矯枉過正,應該假設API將永遠在你身邊嗎?

回答

0

您需要定義超時以確定腳本是否已加載。例如,如果腳本需要10秒鐘才能加載,那麼這可能是可以接受的,但如果腳本花費超過10秒,則可以將其視爲「未加載」。

var apiLoaded = false; 
function loadScript() { } 
function callback() { 
    apiLoaded = true; 
} 
setTimeout(function() { 
    if (apiLoaded === false) { 
     // your backup logic here 
    } 
, 10000); 
+0

謝謝。這讓我走向了我在這裏找到的正確答案:http://stackoverflow.com/questions/9014473/how-can-i-timeout-a-google-maps-geocoder-via-javascript – greener 2013-02-26 22:26:21