小编san*_*ran的帖子

如何处理requireJs超时错误?

我正在编写一个使用require.js作为我的加载框架的移动混合应用程序.我有加载错误的问题.我正在尝试做的是在设备离线时设置后备解决方案,我无法下载需要在屏幕上显示地图的google maps API脚本.我得到的只是

Uncaught Error: Load timeout for modules: async!http://maps.googleapis.com/maps/api/js?sensor=true
Run Code Online (Sandbox Code Playgroud)

但我无法捕捉到这个错误,并提供了另一种实现方式.这是我的gmaps模块定义

define('gmaps', ['async!http://maps.googleapis.com/maps/api/js?sensor=true'],function(){
  return window.google.maps;
});
Run Code Online (Sandbox Code Playgroud)

我能做什么?

编辑

由于你的帮助,我设法找到了可能的解决方案.我已经设置了这样的要求

require.config({
    paths: {        
        gmaps: ['http://maps.googleapis.com/maps/api/js?sensor=true', 'lib/dummymaps']
    }
}
Run Code Online (Sandbox Code Playgroud)

dummymaps只是一个简单的模块:

define({
   dummy: true
});
Run Code Online (Sandbox Code Playgroud)

然后在我的"父母"模块中我做:

define(["gmaps"],function(gmaps){
    ...
    if(typeof gmaps.dummy != 'undefined' && gmaps.dummy == true){
        // use a local image as map
    } else {
        // initialize google maps canvas
    }
});
Run Code Online (Sandbox Code Playgroud)

你认为这是一个很好的解决方案吗?

编辑2:

原谅我,它不能使用这段代码.它总是回到替代实现,因为gmaps需要使用异步插件来完全加载,我无法使它与插件一起工作.

javascript requirejs

6
推荐指数
2
解决办法
5180
查看次数

标签 统计

javascript ×1

requirejs ×1