与dojo.io.script异步加载Google Maps API V3会无声地失败

时间:2011-09-16 00:07:57

标签: dojo google-maps-api-3

将谷歌的asynchronous loading docs刷入道场的asynchronous loader收益率:

dojo.io.script.get({
  url: 'http://maps.googleapis.com/maps/api/js',
  jsonp: 'callback',
  content: {
    sensor: 'false'
  },
  load: function() {
    console.log('done');
  },
  error: function() {
    console.log('error');
  }
});

或者说它:http://jsfiddle.net/sKNmS/

加载了地图JS文件,但从不调用回调。为什么呢?

3 个答案:

答案 0 :(得分:0)

dojo.io.script.get仅适用于JSONP服务。永远不会调用你的回调,因为据我所知,该URL不会返回JSONP格式的响应,只是简单的JavaScript。

dojo.io.script.get设置一个回调,预计会从该URL返回的代码触发。由于该URL指向普通的JavaScript,因此该函数永远不会被触发,因为响应不是JSONP。

答案 1 :(得分:0)

看起来dojo.io.script.get()不支持Google地图延迟调用JSONP回调。

我填写了一个道场feature request

答案 2 :(得分:0)

还有另一种方法(在dojo 1.6上测试):

dojo.io.script.get({
  url: 'http://maps.googleapis.com/maps/api/js'
}).then(function() {
  console.log('done');
});

由于 dojo.io.script.get 会返回Deferred对象。