我正在使用 require.js 作为我的加载框架编写一个移动混合应用程序。我有加载错误的问题。我要做的是在设备离线时设置一个后备解决方案,我无法下载我需要在屏幕上显示地图的谷歌地图 API 脚本。我得到的只是
Uncaught Error: Load timeout for modules: async!http://maps.googleapis.com/maps/api/js?sensor=true
但我无法捕捉到此错误并提供替代实现。这是我的 gmaps 模块定义
define('gmaps', ['async!http://maps.googleapis.com/maps/api/js?sensor=true'],function(){
return window.google.maps;
});
我能做些什么?
编辑
感谢您的帮助,我设法找到了可能的解决方案。我已经设置了这样的要求
require.config({
paths: {
gmaps: ['http://maps.googleapis.com/maps/api/js?sensor=true', 'lib/dummymaps']
}
}
dummymaps 只是一个简单的模块:
define({
dummy: true
});
然后在我的“父”模块中我做:
define(["gmaps"],function(gmaps){
...
if(typeof gmaps.dummy != 'undefined' && gmaps.dummy == true){
// use a local image as map
} else {
// initialize google maps canvas
}
});
你认为这是一个好的解决方案吗?
编辑2:
原谅我,它不适用于此代码。它总是退回到替代实现,因为 gmaps 需要使用异步插件才能完全加载,而我无法使其与插件一起使用。