虽然Google的服务器访问速度很快,但如果每个页面都增加google jsapi的js调用,肯定会降低网页打开速度,是否可以等到网页打开以后,再加载google jsapi呢?
答案是肯定的,我们可以用Javascript来动态加载Google JSAPI,参考以下示例程序
function mapsLoaded() {
var map = new google.maps.Map2(document.getElementById("map"));
map.setCenter(new google.maps.LatLng(37.4419, -122.1419), 13);
}
function loadMaps() {
google.load("maps", "2", {"callback" : mapsLoaded});
}
function initLoader() {
var script = document.createElement("script");
script.src = "http://www.google.com/jsapi?key=ABCDEFG&callback=loadMaps";
script.type = "text/javascript";
document.getElementsByTagName("head")[0].appendChild(script);
}
以上代码有2处关键点:
1:
加载google jsapi的时候,需要附加参数callback=loadMaps,表示api加载完成以后,google需要回调的函数。注意,仅仅加载了api,还不能使用google的具体的功能,需要使用google.load函数加载具体的模块才行。
2:当使用google.load的时候,需要增加callback参数,否则网页可能会直接跳转到空白页。这里的callback参数是指加载完指定的模块以后要回调的函数。
Ferris
2010-08-30