嘗試異步加載Google地圖,以便HTML頁面的開始速度更快。異步加載Google地圖時處理網絡斷開連接
已使用鏈接中提到的以下代碼:https://developers.google.com/maps/documentation/javascript/tutorial#asynch。部分:異步加載API。
function initialize() {
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
function loadScript() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=TRUE_OR_FALSE&callback=initialize";
document.body.appendChild(script);
}
window.onload = loadScript;
問題:
- 當調用
loadScript()
功能後,網絡不通。目前我們還是無法找到檢查網絡連接是否終止&做適當的錯誤處理。 - 即使網絡可用一些回調函數'
initialize()
'永遠不會被調用。 即使在3G網絡上,谷歌地圖在移動設備上的加載速度也非常緩慢。
在上述兩種情況下,我們都會在調用
loadScript()
後立即啓動加載圖標。由於initialize()
未被回叫,因此無限時間在加載圖標中被阻止。
請提供一些指針來處理網絡斷開&回調函數未調用的問題。