3

由于我将在移动应用程序中使用谷歌地图和地点,我不希望任何东西减慢应用程序的加载速度。

我已经看到在边缘网络上,我的应用程序启动速度非常慢。我所有的 js 都是本地的,所以只有谷歌地图和地点需要很长时间才能加载(如果我从 html 文件中删除地图和地点,加载速度很快)。

index.html
<script>....</script>
<script src='http://maps.google.com/maps/api/js?key=mykey&amp;sensor=false'></script>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&amp;sensor=false"></script>
</body>

我在使用 ajax 动态加载谷歌地图 v3上找到了如何异步下载谷歌地图:

$.getScript("http://maps.google.com/maps/api/js?key=mykey&sensor=false&async=2&callback=MapApiLoaded", function () {});

function MapApiLoaded() {
   $.ajaxSetup({async:false});
   $.getScript("http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false");
   $.ajaxSetup({async:true});
   alert('loading places done');
}

我收到了警报,并检查了 $.getScript() 是否成功返回,但是当我尝试使用地点时,我在 javascript 控制台中收到以下错误:谷歌地图地点未定义。

我试图只在 html 文件中有位置并异步加载谷歌地图,但它也不起作用。

任何想法 ?先感谢您。

4

1 回答 1

6

您正在加载 Maps API 两次。只需执行一次,包括场所库:

$.getScript("http://maps.google.com/maps/api/js?key=mykey&libraries=places&sensor=false&callback=MapApiLoaded");

function MapApiLoaded() {
    alert('loading Maps API and Places library done');
}
于 2013-06-16T10:37:36.503 回答