2012-06-05 45 views
3

Uncaught Error: Load timeout for modules: order!libs/jquery/jquery-min order!libs/underscore/underscore-min order!libs/parse/parse-min libs/jquery/jquery-min libs/underscore/underscore-min libs/parse/parse-min Backbone http://requirejs.org/docs/errors.html#timeoutRequire.js負載超時的jQuery /下劃線/骨幹網/解析模塊

我有Chrome瀏覽器的網絡選項卡下,沒有404名的請求,我也沒有腳本錯誤,所以我共同的錯誤/修正之外該問題(根據requirejs.org)。

當我看着我的網絡,我看到腳本加載順序如下:

require.js 
main.js 
app.js <-- required by main.js 
order.js <-- used in main.js to require the next 4 scripts (which aren't AMD) 
jquery-min.js <-- required by main.js 
underscore-min.js <-- required by main.js 
backbone-min.js <-- required by main.js 
parse-min.js <-- required by main.js 
router.js 
login.js 
text.js 

這似乎是我的權利。以下是我的代碼main.jsapp.jsrouter.js

main.js:

// Author: Thomas Davis <[email protected]> 
// Filename: main.js 

// Require.js allows us to configure shortcut alias 
// Their usage will become more apparent futher along in the tutorial. 
require.config({ 
    paths : { 
     jQuery : 'libs/jquery/jquery-min', 
     Underscore : 'libs/underscore/underscore-min', 
     Backbone : 'libs/backbone/backbone-min', 
     Parse : 'libs/parse/parse-min', 
     templates : '../templates' 
    } 
}); 

require([ 
    // Load our app module and pass it to our definition function 
    'app', 

    // Some plugins have to be loaded in order due to their non AMD compliance 
    // Because these scripts are not "modules" they do not pass any values to the 
    // definition function below 
    'order!libs/jquery/jquery-min', 
    'order!libs/underscore/underscore-min', 
    'order!libs/backbone/backbone-min', 
    'order!libs/parse/parse-min' 
], 
function(App) { 
    // The "app" dependency is passed in as "App" 
    // Again, the other dependencies passed in are not "AMD" therefore 
    // don't pass a parameter to this function 
    App.initialize(); 
}); 

app.js:

// Filename: app.js 
define([ 'jQuery', 'Underscore', 'Parse', 'router' ], 
function($, _, Parse, Router) { 
    var initialize = function() { 

     Parse.$ = $; 

     // Initialize Parse with your Parse application javascript keys 
     Parse.initialize("HIDDEN", "ALSO HIDDEN"); 

     // Pass in our Router module and call it's initialize function 
     Router.initialize(); 
    }; 

    return { 
     initialize : initialize 
    }; 
}); 

router.js:

// Filename: router.js 
define([ 'jQuery', 'Underscore', 'Backbone', 'Parse', 'views/home/login', ], 
function($, _, Backbone, Parse, loginView) { 
    var AppRouter = Backbone.Router.extend({ 
     routes : { 
      // Default 
      '*actions' : 'defaultAction' 
     }, 
     defaultAction : function(actions) { 
      // We have no matching route, lets display the home page 
      loginView.render(); 
     } 
    }); 

    var initialize = function() { 
     var app_router = new AppRouter; 
     Backbone.history.start(); 
    }; 
    return { 
     initialize : initialize 
    }; 
}); 

回答

-8

我切換到加載我main.js之外,並在JS文件我的index.html

<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://www.parsecdn.com/js/parse-1.0.0.min.js"></script> 
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js"></script> 
<script data-main="js/main" src="js/libs/require/require.js"></script> 
+5

我得到這會爲你工作,但因此它並沒有真正的答案,這並不使用requireJS到了加載模塊這個問題... –

+3

這幾乎違背了AMD的原則。 –

0

我剛剛發佈了一個開源工具包,可以幫助解決這類問題。它是許多開源工具的組成部分,它爲您提供了一個開箱即用的requirejs骨幹應用程序。

它提供單一的命令來運行:開發網絡服務器,茉莉單個瀏覽器測試運行,茉莉JS測試驅動器多瀏覽器測試運行,並concatenization /縮小爲JavaScript和CSS。它還輸出用於生產調試的應用程序的非最小版本,預編譯您的手柄模板並支持國際化。

無需設置。它只是工作。

http://github.com/davidjnelson/agilejs

1

嘗試使用requirejs,jQuery的。它的requirejs版本已準備好與jquery協同工作,並嘗試使用shim config。

請參閱此鏈接:https://github.com/jrburke/require-jquery

沉配置例如:

require.config({ 
    paths: { 
    "jqueryUI": "libs/jquery-ui", 
    "jquery": "libs/jquery-1.9.1", 
    "underscore": "libs/underscore-min", 
    "backbone": "libs/backbone-min" 
    }, 
    shim: { 
    jqueryUI:{ 
     deps: ["jquery"], 
     exports:"$" 
    }, 
    underscore: { 
     exports: "_" 
    }, 
    backbone: { 
     deps: ["underscore", "jquery"], 
     exports: "Backbone" 
    } 
    } 

});