0

我正在创建一个 phonegap 应用程序,它使用谷歌地图来显示方向和用户位置。我通过添加使用了默认的 google api

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

我观察到这会导致应用程序初始化速度变慢,如果移动设备上的连接速度很慢,有时甚至会崩溃。我知道除非加载所有脚本,否则该应用程序将无法启动。

我尝试从网址http://maps.google.com/maps/api/js?sensor=false下载 JavaScript并在本地存储,但这有时会导致地图加载失败。

是否有可以存储在应用程序本身中的等效脚本?或者我们可以在加载应用程序后延迟加载脚本吗?

4

2 回答 2

2

您可以异步加载 API,就像在此示例中所做的那样。像这样,您可以在您的 javascript 中决定何时加载它(调用 loadScript()),然后初始化地图。

请注意,该示例使用回调参数,它是 API 加载完成时要调用的函数的名称。

于 2012-08-31T15:31:42.510 回答
0

您可以使用java script 异步处理。此方法基于回调响应。

谷歌地图 javascript api 提供异步加载链接

function initialize() {
  var mapOptions = {
    zoom: 8,
    center: new google.maps.LatLng(-34.397, 150.644)
  };

  var map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);
}

function loadScript() {
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 'http://maps.google.com/maps/api/js?sensor=true&callback=initialize';
  document.body.appendChild(script);
}

window.onload = loadScript;
于 2015-05-28T11:56:19.240 回答