2012-01-03 9 views
3

私はJavascriptで巨大なWebアプリケーションを持っており、すべてを管理する面倒なことになっています。私はすべての小さなファイルにそれぞれのアプリケーションの独自のサブセクションで壊した。大きなオブジェクトを扱うJavascriptビルドシステム

例えば、アプリの名前が "て、myApp" 私は、ファイルが

myApp.ajax = (function(){return {/*stuff*/}})(); 

myApp.canvas = (function(){return {/*stuff*/}})(); 
が含まれてい

myApp.canvas.jsと呼ばれるものを含んでいる

myApp.ajax.jsと呼ばれてい

など。私がすべてのファイルを連結してそれらを縮小すると、私はこれらのすべてを一緒に混乱させます。だから私は思っていた、それはすべてのものをコンパイルするときに、このint型1つの

var myApp = { 
    ajax: /*stuff*/, 
    canvas: /*stuff*/, 
    /*etc*/ 
} 

のすべてを回すでしょうビルドシステムがありますか?

私は小さなテストを実行し、オブジェクトの各部分を別々にすると深刻なパーフォマンスの減衰に気付いたので、私は尋ねます。テストはここにあります:http://jsperf.com/single-object-vs-multiples

答えて

1

私はこれのポイントを得るか分かりません。 JavaScriptを連結して縮小することは、いつもかなり混乱してしまいます(少なくとも読むには)。最初に連結してから縮小すると、使用しているコンパイラは全体を最適化できます。

パフォーマンスの問題については、 JSPerfテストでは、モジュールをアタッチする方法が約12%遅くなっています(少なくともFirefoxではV8とは異なるようです)。しかし、あなたは1000000回ではなく、アプリケーションの負荷で1回だけ実行しています。それは、ページロード時にマイクロ秒単位でどこかで違いを生むことができます。

+0

これは当てはまります。違いはごくわずかだと思います。ありがとう! – ntkachov

0

私はあなたの質問と私が見てきた人々が一つに複数のjsファイルを照合して、this

0

うんを見るなど、それに対して圧縮を実行するためにmakeを使用する傾向にあり、連結を処理http://brunch.io/があるから集めるものとし、あなたのためにそれのようなもの。

関連する問題