2017-01-25 3 views
0

レガシーアプリケーションでjavascriptの読み込みが正常に行われないケースがあります。アプリケーションはRequire.jsを使用して複数のモジュールをロードし、当社のモジュールの1つが依存関係がロードされる前に実行されています。「オーダー」とは何ですか?このrequirejs/amdモジュールのディレクティブ?

Require.jsとのAMDとの私の経験は非常に限られており、研究に私のような、一部の地域では依存関係がorder!文字列が付いていることに注意:

define(['order!jquery', ...

一方、他の地域で接頭辞が使用されていません。

define(['jquery', ...

をこれまでのところ、私はこのディレクティブのドキュメントを見つけることができません。その効果は何ですか?

答えて

1

詳しい情報はhere

通常RequireJS負荷からコピーされ、未定 ために、スクリプトを評価します。しかし、特定の順序でロードされる に依存する伝統的なスクリプトがあります。その場合は オーダープラグインを使用できます。プラグインをダウンロードし、アプリのメインJSファイル と同じディレクトリに配置します。使用例:それはまだ HTMLの頭の中でスクリプトタグを使用してより良いを行う必要がありますので、注文プラグインによってロード

require(["order!one.js", "order!two.js", "order!three.js"], function() { 
    //This callback is called after the three scripts finish loading. 
}); 

スクリプトを非同期にフェッチされますが、 は、彼らが必要とするために渡される順に評価します資料。

オーダープラグインは、従来のスクリプトで最もよく使用されます。 define()を使用してモジュールを定義するスクリプトには、 は必要ありません。 は、「オーダー」との組み合わせが可能です。依存関係は通常の依存関係と同じですが、 "注文!"それらはそれぞれ otherに相対的な順序で評価されます。

注:

  • ため!プラグインは、ブラウザでキャッシュ可能なJavaScriptファイルでのみ動作します。 JSファイルに のヘッダーがない場合、ブラウザがファイルをキャッシュできるようにすると、スクリプトの順序は維持されません。
  • ご注文を使用しないでください!他のプラグインがロードされたリソースをロードするためのプラグイン。例えば。 'order!cs!my/coffescript/module'はお勧めしません。 IEとWebKitのいくつかのバージョンでエラーが発生します。これは、プラグインがこれらのブラウザのために実行する回避策である
    のためです。
    を実行して順番に実行する必要があります。
+0

ああ、完璧!本当にありがとう :) – STW

関連する問題