2011-03-28 5 views
0

だから、私は自分のアプリケーションのために自分のコードをレイアウトする方法について健全性チェックが必要です。私は常により良いアプローチを学ぶことに熱心です。Gloal Abatement - 単一のオブジェクトリテラルを使う

私は基本的にオブジェクトリテラルを使用して自分のコードを整理し、1つのグローバル変数を持つことを意味します。

var MYAPP = { 

     init : function() { 
      //site wide common js 
     }, 

     sections : { 

      homepage : function() { 
       //homepage js 
      }, 

      anotherpage : function() { 
       //another page js 
       tools.usefultool(); 
      } 

     }, 

     tools : { 

      usefultool : function() { 
       //useful reuseable method 
      } 

     } 
}; 

これはコードの組織を支援しながら、私の質問は、私はオブジェクトが初期化されている疑問を抱いたが使用されることはありませんよさ:ような何か - そして、アプリケーションの各セクションのために私は別のオブジェクトを作成します。たとえば、サイトのホームページにいる場合は、MYAPP.sections.homepage()に電話します。私は実際に他のオブジェクトのいずれかを必要としないので、私は疑問に思っています - この構造はパフォーマンスの意味を持っています?より良い方法がありますか?この構造は、Rebecca Murphyの著書「コードを整理するためのオブジェクトの使用」(http://blog.rebeccamurphey.com/2009/10/15/using-objects-to-organize-your-code)の記事と密接に関連しています。

ありがとうございます!

答えて

2

はい、実行されていなくてもパーサーが実際にコードを解釈しなければならないため、使用されていないコードでは常にパフォーマンスが低下します。しかし、ここで打つパフォーマンスはとても分かりませんので、気づかないでしょう。このような未使用コードの唯一のヒットは、ダウンロードに必要な帯域幅にあります。ダウンロードした100kbのファイルをダウンロードした場合、そのファイルをダウンロードする時間が無駄になります。

+0

スクリプトがブラウザにキャッシュされている場合は、帯域がヒットしません。また、人々はいつも「時期尚早の最適化はすべての悪の根源です」と言います。おそらく、パーザで無駄になったmsだけが見えます。 – Felipe

+0

私が言ったように、それはあなたが気付かないほど分です。 jQueryはMacBook ProのChromeで約15msの解析時間を要します。 –

+0

これは意味があります。しかし、このアプローチは、サイトがブラウザで占有していたメモリの量に悪影響を及ぼすでしょうか?私は未使用のオブジェクトを削除する方が良いでしょうか、それとも違いが目立たないのでしょうか? – mindwire22

関連する問題