2009-05-17 94 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