动态载入gmaps脚本

有时候,GFW或者中国电信等运营商对gstatic.com等Google Maps相关网站制造延迟甚至网络不通的现象,除了做成Google Maps API v3不能用之外,载入网页的速度也大大降低,我的想法是,当要用gmaps的时候才动态载入gmaps的JavaScript,不要用不用也载入,这样会浪费时间。

一般情况下都会使用这种形式引用gmaps:

如果单纯转为jQuery.getScript则不行:

$.getScript('http://maps.googleapis.com/maps/api/js?sensor=false',function(){
	...
});

其实gmaps可以通过在URL上指定回调函数的名称,只要加上 &async=2&callback=回调函数名称

var map;
function get_coord(){
	if(!map)
	$.getScript('http://maps.googleapis.com/maps/api/js?sensor=false&async=2&callback=initialize');
}
function initialize(){
	var latLng = new google.maps.LatLng(23, 113);
	var myOptions = {
	zoom: 17,
	center: latLng,
	streetViewControl:false,
	zoomControl:false,
	mapTypeId: google.maps.MapTypeId.SATELLITE,
	mapTypeControl: false,
	mapTypeControlOptions: {mapTypeIds: [google.maps.MapTypeId.SATELLITE]}
	};
	map = new google.maps.Map(document.getElementById('map_canvas'),myOptions);
}

相关的Google Maps API文档

No related posts.

Posted by on 2011-11-09.
Categories & Tags: JavaScript