2013-04-01 19 views
5

私はRequireJSモジュールからjQueryの初期化を実行しています。すべての要素がロードされる前にRequireJSモジュールを実行する方法はありますか?

しかし、RequireJSは、コードを実行する前にすべてのページアセットが読み込まれるまで待ちます。

大きな画像をページに読み込んでいますが、jQueryプラグインの設定にロードされるまで待たされることはありません。

これを行うときにはベストプラクティスがありますか?ここで

は私の設定です:

index.htmlを

<script data-main="js/main.js" src="js/libs/require.js"></script> 

main.js

require(["inits"], function(Inits) { 
    //Nothing here yet. 
}); 

inits.js

define([ 
     'jquery', 
     'jquery.plugin1', 
     'jquery.plugin2', 
     'etc' 
], function ($) { 
    //jQuery Document Ready. 
    $(function(){ 
     //Jquery Init Code here 
    }); 
} 

私はRequireJSを初めて使っていますが、これは間違っていますか?

答えて

2

申し訳ありませんが、私は回避策が働いているようです。

ここにこのチケットを参照:私は私のbodyタグの終わりに、データの主と私のスクリプトタグを移動

https://github.com/jrburke/requirejs/issues/463

<script data-main="js/main.js" src="js/libs/require.js"></script> 
</body> 

そして、私のjqueryの関数をアンラップ:

define([ 
    'jquery', 
    'jquery.plugin1', 
    'jquery.plugin2', 
    'etc' 
], function ($) { 
    //Jquery Init Code here with no Ready Wrapper. 
} 

define([ 
    'jquery', 
    'jquery.plugin1', 
    'jquery.plugin2', 
    'etc' 
], function ($) { 
    //jQuery Document Ready. 
    $(function(){ 
     //Jquery Init Code here 
    }); 
} 

それはの終わりで働く、とされているように見えますhtmlファイル"should"は、DOMに問題が発生しないようにするべきです。しかし、私はこのアプローチに完全には満足していません。私はこれを開いて、他の人が良いアイデアを持っているかどうかを確認したいと思います。

関連する問題