Jquery 异步加载Google places

Jquery 异步加载Google places,jquery,google-maps-api-3,google-places-api,Jquery,Google Maps Api 3,Google Places Api,因为我将在移动应用程序中使用谷歌地图和地点,所以我不希望任何东西减慢应用程序的加载速度 我在edge网络上看到,我的应用程序启动速度非常慢。我所有的js都是本地的,所以只有googlemaps&places需要很长时间才能加载(如果我从html文件中删除maps&places,加载速度会很快) 我收到警报并检查了$.getScript()是否成功返回,但当我尝试使用places时,javascript控制台中出现以下错误:google maps places未定义 我曾尝试在html文件中只放置

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

我在edge网络上看到,我的应用程序启动速度非常慢。我所有的js都是本地的,所以只有googlemaps&places需要很长时间才能加载(如果我从html文件中删除maps&places,加载速度会很快)

我收到警报并检查了$.getScript()是否成功返回,但当我尝试使用places时,javascript控制台中出现以下错误:google maps places未定义

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


有什么想法吗?提前感谢您。

您正在加载两次地图API。只需执行一次即可,其中包括places library:

$.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');
}

非常感谢你。事实上,我还有一个问题。当GoogleMaps已加载且正在运行时,将调用MapApiLoaded。你知道在加载Places库时是否会触发事件吗?我在这里添加了一个问题:嗯。。。我的印象是,所有库都将在调用回调之前加载。如果我做一个
console.log(google.maps.places)
MapApiLoaded
的开头显示对象存在。但我想可能当时只加载了库的一个存根,而不是完整的库?我还想问一下Maps API URL中的
async=2
。我在V3 Maps API中没有看到该参数;你有这方面的参考资料吗?我看到了。我从某人的代码中复制了async=2。我删除了它,它没有改变任何东西-我还发现它是没有文件的。我找到了问题的解决方案,并将其发布在此处:
$.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("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');
}