0

ページをYUI2からYUI3に正常に移行し、アップグレード中にYUI3のダイナミックライブラリロードをyui-min.js使用して YUI().use(...) いましたが、ローカルのYUI2 JSを削除し、ローカルにYUI3を追加したいと思います。

グローバル変数を作成し、var Y = YUI().use('*',function(Y){});に変更しyui-min.jsyui-core-min.js、使用したいライブラリを追加しました。変更するとうまく機能しY instead YUI()ます。

Y.use('datatable','datasource', function(Y){
    ...
    fcTable = new Y.DataTable(...);
});

Y.use(...)しかし、最初にしか呼び出すことができず、次のようなグローバルY変数でしか機能しないかどうかを知りたいです。

    ...
    fcTable = new Y.DataTable(...);

少し速くロードできると思いますが、お勧めですか?

ありがとう4あなたの時間;)

4

1 に答える 1

3

現在ページにないモジュールは非同期操作であるためuse()、競合状態を設定しています。それを無視して、それは可能です、はい。

Y.use('datatable');

モジュールが解決されてアタッチされると、Y.DataTableグローバルに利用可能になります。唯一の問題は、それがいつになるかを保証できないことです。use()これがコールバックの理由です。

すべてのモジュールの依存関係が既に静的に (<script> で) ページにある場合は、use()同期されます。

Y.use('datatable');
var table = new Y.DataTable({ … });

しかし、モジュール スクリプトをページに含めて を呼び出す場合は、がすべてをアタッチするため、後でuse('*')明示的に呼び出す必要はありません。Y.use('datatable')*

于 2012-05-25T18:05:01.260 に答える