2012-02-16 8 views
0

Yahoo User Interface (YUI) 3.5public release 2を使用しています。本当にYUI3ローダーが読み込むすべてのファイルが必要ですか?

yui-min.jsファイルを私のビューに追加しました。私がやっていることは、ユーザーを別のビューに連れてくるクリックイベントにボタンをサブスクライブすることだけです。何もない。私はクリックイベントにボタンをサブスクライブするときここ

は私のスクリプト参照と私のスクリプトです:

<script src="/Assets/yui_3.5.0pr2/yui/build/yui/yui-min.js"></script> 

<script> 

    YUI().use('node', 'event', function (Y) { 
      Y.one('#cancel').on('click', function (e) { 
       window.location = '/Administration/User'; 
      }); 
    }); 

</script> 

しかし、それはすべてのCSSファイルや他のYUI3必要なファイルをロードする39 requestsを作るときに、ページがロードされます。私は1つに私のCSSファイルの5つを置くことができますが、それはまだ作られている35の要求です。ダウンロードサイズの合計は176kbです。

cssreset-min.css 
cssfonts-min.css 
cssgrids-min.css 
cssbase-min.css 
admin.css 
yui-min.js 
oop-min.js 
event-custom-base-min.js 
dom-core-min.js 
dom-base-min.js 
selector-native-min.js 
selector-min.js 
node-core-min.js 
node-base-min.js 
event-base-min.js 
event-delegate-min.js 
node-event-delegate-min.js 
pluginhost-base-min.js 
pluginhost-config-min.js 
node-pluginhost-min.js 
dom-style-min.js 
dom-screen-min.js 
node-screen-min.js 
node-style-min.js 
event-custom-complex-min.js 
event-synthetic-min.js 
event-mousewheel-min.js 
event-mouseenter-min.js 
event-key-min.js 
event-focus-min.js 
event-resize-min.js 
event-hover-min.js 
event-outside.js 
event-touch-min.js 
event-move-min.js 
event-flick-min.js 
event-valuechange-min.js 
intl-min.js 

これは意味をなさない。なぜこれらのファイルはすべてロードされているのですか?それらのファイルはすべて使用されていませんか?これの利点は何ですか?私がやっていることで、これらのjavascriptファイルがすべて利用されているのですか、YUIローダーは使用されていない余分なファイルをロードしていますか?

答えて

0

この特定のケースでは、必要なものだけを少し調整すると役立ちます。まず、CSSファイルを読み込む必要はありません。その場合は、fetchCSS設定オプションを使用してください。次に、シンプルなイベントを購読するために、すべてのノードとイベントモジュールを必要とするとは限りません。ちょうどnode-baseで十分でしょう。だから、これを試してみることができます。

YUI({ fetchCSS: false }).use('node-base', function (Y) { 
    Y.one(button).on('click', fn); 
}); 

これは、gzipで11個のファイルと18キロバイトまでそれを取ります。

しかし、一般に、ほとんどすべてのファイルが必要です。その多くのファイルの理由は、YUIチームがビルドプロセスを変更し、より詳細なアプローチをとったからです。そうすれば、ローダーは必要なものを手に入れることができ、多くの不必要なコードをロードすることがなくなります。欠点は、それを自分でホストし、ファイルを結合するためのシステムを使用しないとダウンロードが遅くなるということです。

RyanのCombohandler(NodeJS:https://github.com/rgrove/combohandler)を調べることをお勧めします。他のサーバー側プラットフォームにも同様のプロジェクトがあります。

関連する問題