谷歌地图API - 缓慢加载的JavaScript

11
我正在使用Google Maps API在某个页面上显示地图。问题是文件http://maps.google.com/maps?file=api.....有时会加载得非常缓慢,导致页面性能下降,因为其余的JavaScript首先在文档准备就绪时加载,这很少发生,因为浏览器被锁定等待来自Google的文件。 我尝试将JavaScript文件从标签移动到我的内容下面。但是浏览器仍然等待来自Google的文件,因此其余的JavaScript永远不会被触发。是否有解决这个问题的方法,或者其他人是否遇到过同样的问题?它最近才开始,我不知道原因。如果有兴趣,这是我的代码:
<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时,Firebug 会降低程序的性能。如果我在没有安装 Firebug 的浏览器上查看页面,则性能正常。请确认是否使用了该插件。 - user35288
我也遇到过同样的问题,但只在使用Firefox并针对本地主机运行时出现。IE和Chrome都没有问题。 - RichH
我正在使用 Firebug 进行调试。我可以尝试关闭它,看看是否有帮助。 - janhartmann
1
禁用Firebug解决了问题!这很奇怪。Firebug在过去的几周中一直没有任何问题。谢谢Paul - 你可以回答这篇帖子,我接受你的答案。 - janhartmann
3个回答

16

这个问题现在比较古老了——解决方法是禁用firebug(至少对我来说是这样)。


2
是的,对我来说也是一样的。我在FF和IE9中进行了调查,当关闭FF中的Firebug和IE9中的开发人员工具时,地图得以加载,谢谢! - Adil

12

使用谷歌的Ajax APIs。从一段时间以来,所有谷歌的服务都可以通过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的开发者文档


4

关于JavaScript的优化:始终将JS放在页面底部,即使是Maps API脚本。我真的想不出有任何理由在head中放置任何JS。


我知道这很老,但如果你正在使用Google Maps API或require.js,它们都建议你将其放在顶部。 - Animal Rights
1
我在两个底部都没有遇到过问题。 - Nael El Shawwa
如果您将JavaScript放在底部,它将在页面呈现后才运行,这在许多情况下都是不可取的。 - Muhd
1
因为它应该在头部!直到最近,程序员才开始将脚本移动到正文中。我仍然认为脚本应该在头部编译早期,但稍后初始化。只是因为我不喜欢混合内容和源代码。 - Pizzaiola Gorgonzola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接