私は、モジュールがページを提供する前にページに追加されるJSファイルを定義できるようにするフレームワークを作成しています。アイデアは、モジュールが次のようなものを追加する可能性があるということです。
require([ 'dojo/topic', 'dojo/_base/window', 'hotplate/hotDojoWidgets/AlertBar' ], function( topic, win, AlertBar
){
globalAlertBar = new AlertBar( { background: '#FF4444' } );
globalAlertBar.placeAt( document.body, 'first' );
globalAlertBar.startup();
topic.subscribe('globalAlert', function( message, displayFor ){
displayFor = displayFor || 2500;
globalAlertBar.set( 'message', message );
globalAlertBar.show( displayFor );
});
});
globalAlert
これにより、たとえば、alertBarを表示するために、アプリケーション周辺の他のウィジェットを公開できるようになります。たった今:
- ロードするJSのリストに追加されたJS/Dojoファイルは、「require」で始まります。私にとって、これはロード後のある時点で実行される単なる非同期コードです。フレームワークにこのようにロードされたコードのほとんどは、トピックが公開されるのを待ち、それに応じて動作します
- 「アプリケーション」は、コンテナのオブジェクトを公開するトピックをサブスクライブするモジュールの1つにすぎません。
- require()によってロードされた「適切な」Dojoウィジェットは明らかに「define」を使用します-これは通常どおりのビジネスであり、心配する必要はありません。
質問:
1)ready()
ページで参照されているJS / Dojoファイルの1つで実行した場合、それはドキュメントにロードされたすべての.jsファイルを含むページレベルのready()になりますか?または、現在のファイルによってロードされたファイルに対してのみですか?
2)物事を行う「正しい」方法は、実行するJSファイルを1つだけrequire()
にし、それから他のすべてをロードすることです(または、data-dojo-mainを使用する方がよいことを理解しています)。しかし、私は独立して動作し、ページに自分自身を追加するモジュール(サーバーとクライアントのコードを使用)を定義しようとしています...したがって、アプリケーションページに多数のファイルを入れてから、それらを入れるのは実際には悪い習慣ですか?require()
Dojoコードを実行していますか?
ありがとうございました!
メルク。
PS興味があれば、https://github.com/mercmobily/hotplate ...プロジェクトはここに投稿した後に開始されました!