2009-05-17 95 views
11

我正在使用Google Maps API在特定頁面上顯示地圖。Google Maps API - 緩慢加載javascript

問題是文件http://maps.google.com/maps?file=api.....有時會發生加載速度非常慢 - 降低了頁面的性能,因爲JavaScript的其餘部分首先加載到文檔準備就緒,這很少達到 - 因爲瀏覽器鎖定等待文件谷歌。

我試圖將JavaScript文件從<head>標記移到我的內容下。但其餘的JavaScript從未被解僱,因爲瀏覽器等待Google提供的文件。

有沒有辦法解決這個問題,還是有其他人遇到同樣的問題?它最近開始了,我不知道爲什麼。

這是我的代碼,如果有人有興趣:

<script type="text/javascript" src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAAa24xicak8_ghHX58i7La7hRFh9iM79SNC94rOejOtdMRvQmJiBS6Uv5F_1BNSh9ZuSzFXyekHISgew"> </script> 
<script type="text/javascript" src="/js/maps.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    // Google Maps 
    initialize(); 

    // Other JavaScript comes here.... 

    }); 
</script> 

如果我訪問

http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAAa24xicak8_ghHX58i7La7hRFh9iM79SNC94rOejOtdMRvQmJiBS6Uv5F_1BNSh9ZuSzFXyekHISgew 

文件加載瞬間。

+7

您使用的是Firebug嗎?我發現當我使用地圖API時,螢火蟲降低了我的應用程序的性能,並且如果我在沒有螢火蟲的瀏覽器上查看該頁面,那很好。 – 2009-05-17 23:57:05

+0

我見過同樣的事情,但只在Firefox和本地主機上運行。 IE和Chrome一直很好。 – RichH 2009-05-18 05:17:37

+0

我正在使用Firebug進行調試。我可以嘗試關掉它,看看它是否有幫助。 – janhartmann 2009-05-18 06:33:34

回答

16

這是一個相當古老的問題 - 解決方案是禁用螢火蟲(至少對我來說)。

3

關於JavaScript優化:始終將您的JS放在您的Maps API腳本的底部。我想不出有什麼好的理由讓任何JS頭腦發熱。

12

使用Google的Ajax API。從過去開始,Google的所有服務都可以通過JavaScript API訪問。它是一個模塊化系統,您只需包含JSAPI庫,然後就可以動態加載所需的模塊 - 它不會阻止您的網站。

<script type="text/javascript"   
     src="http://www.google.com/jsapi?key=ABCDEFG"></script> 
<script type="text/javascript"> 
google.load("maps", "2"); 
google.setOnLoadCallback(function() { 
    // Your logic goes here. 
    // It will be run right after the maps module was loaded. 
}); 
</script> 

有關更多詳細信息,請參閱JSAPI's developer documentation