Javascript 从window.onload初始化Googlemaps API时速度非常慢
为了避免ie 7/8未指定的错误,我最近将基于JSON的GoogleMaps v3实现的初始化逻辑从$document.ready之后的内联移动到从window.onload触发的事件函数中。现在,曾经非常快速的加载现在需要15-20秒以上的时间加载。我知道oninit和onload之间有一些细微的区别,但这似乎是极端的。有什么想法吗Javascript 从window.onload初始化Googlemaps API时速度非常慢,javascript,google-maps-api-3,onload,init,Javascript,Google Maps Api 3,Onload,Init,为了避免ie 7/8未指定的错误,我最近将基于JSON的GoogleMaps v3实现的初始化逻辑从$document.ready之后的内联移动到从window.onload触发的事件函数中。现在,曾经非常快速的加载现在需要15-20秒以上的时间加载。我知道oninit和onload之间有一些细微的区别,但这似乎是极端的。有什么想法吗 $(document).ready(function(){ var branchitems=[]; var markers=[]
$(document).ready(function(){
var branchitems=[];
var markers=[];
var map="";
window.onload = function() {
var latlng = new google.maps.LatLng(59.5, -100.68);
var myOptions = {
zoom: 3,
center: latlng,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
PopulateMap(map);
}
function PopulateMap(map){
... my logic for the JSON portion of the map ...
};
如果同步加载API,则window.onload是放置此项的正确位置,否则代码可能会在下载Maps API之前执行 如果这需要10-15秒,那么很可能您也正在加载一堆其他资源。window.onload将在所有内容下载完毕(例如,脚本标记中的所有脚本)后才会执行 一种解决方案可能是异步加载映射API V3,请参见:。然后,您可以在加载API后立即开始构建地图 另一种解决方案是异步加载用户访问站点时不需要准备的任何内容,或者从更快的位置加载资源,例如从Google CDN而不是从您自己的服务器加载jQuery