2011-03-28 3 views
0

그래서 응용 프로그램 코드를 레이아웃하는 방법에 대한 온 전성 검사가 필요합니다. 나는 항상 더 나은 접근법을 배우고 싶어합니다.Gloal Abatement - 단일 객체 리터럴 사용

기본적으로 Object Literal을 사용하여 하나의 전역 변수를 가진 코드를 구성합니다. 그런 다음 응용 프로그램의 각 섹션에 대해 나는 별도의 객체를 생성 - 같은 :이 코드 구성하는 데 도움이 동안

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

관련 문제