0

YUI モジュールが定義されているかどうか (つまり、誰かがそのモジュールに対して YUI.add() を呼び出したかどうか) を実行時に判断したいと考えています。

YUI コードを読むと、YUI.Env.mods[moduleName] でうまくいくように見えますが、このプロパティに関するドキュメントが見つからないため、このプロパティが使用/機能することを意図しているかどうかはわかりません。ケース。これを行うための好ましい方法はありますか?

編集:これが私が達成しようとしていることです:

ほとんどのアセットが HEAD のリンク/スクリプト タグを介して手動で読み込まれるシステムから、YUI ローダーにもっと依存するシステムに切り替えています。レガシ コードをサポートするために、HEAD にプリロードされたモジュールが YUI によって再度ロードされないようにしたいと考えています (jQuery のようなものは、2 回ロードすると問題が発生します)。

プリロードされたモジュールは、YUI スタイルのモジュールと非 YUI スタイルのモジュールが混在しています。

これまでのところ、次のようなコードを発行しています。

<head>
<!-- bunch of script/link tags -->
<script>
    var modules = // list of preloaded modules
        , i;
    for (i = 0; i < modules.length; ++i) {
        if (!ISMODULEALREADYDEFINED(modules[i])) {
            YUI.add(modules[i], function (Y) { }, '');
        }
    }
</script>
</head>

ISMODULEALREADYDEFINED チェックが必要な理由は、事前にロードされたモジュールの一部が YUI スタイルのモジュールである場合、上記のスクリプトを実行すると、YUI が依存関係を非同期的にロードし続ける可能性があるためです。その場合、追加している noop モジュール定義によって、元のモジュール定義コールバックが実行されなくなります。

4

0 に答える 0