2012-07-13 3 views
0

내 응용 프로그램의 디자인에 대한 질문이 있습니다, 그것은 다음과 같은 예를 들어, 자바 스크립트가 포함 된 큰 프로젝트입니다 :자바 스크립트 jQuery를 DOM 데이터 API 아키텍처

  • modal.js을
  • (모달 폼을위한 jQuery 플러그인을 포함)
  • tooltip.js
  • textbox.js 내가 데이터를 사용한다면

는 성능을 해칠 것인가 (텍스트 상자, 자리 등을위한 jQuery 플러그인 포함) (툴팁에 대한 jQuery 플러그인을 포함) -api 내 전체 자바 스크립트 UI를 설정하는, 그래서 나는이 코드를 가진 모든 요소들을 루프를하고자하고 필요한 경우 플러그인을 초기화 :

$.each('[data-trigger="modal"]', function(a, b){ 
    // Do plugin code here $(this).modal() 
}); 

$.each('[data-textbox="^*"]', function(a, b){ 
    // Do plugin code here $(this).textbox() 
}); 

$.each('[data-tooltip="hello, I am a tooltip"]', function(a, b){ 
    // Do plugin code here $(this).tooltip() 
}); 

다른 옵션은 다음과 같습니다

$(document).ready(function(){ 
    $('#modal-create-account-trigger').modal(); 
    $('#tb-username').textbox(); 
    $('#tb-password').textbox(); 
    $('#tb-fullname').textbox(); 
}); 

내가 선호하는 각 솔루션은 HTML로 완벽하게 제어 할 수 있습니다. 성능 저하, 얼마나 나쁜지, 대안이 있습니까?

감사합니다.

+0

'$ ("*"). each 할 수 있으며 하나의 선택과 루프에서 데이터를 확인하십시오. – Esailija

답변

0

큰 성능 향상으로 인해 #ID 선택기를 사용하는 것이 항상 좋습니다.

+0

데이터 셀렉터를 사용하여 눈에 띄는 속도가 느려지려면 페이지가 방대한 분량이어야합니다. 그리고 그 페이지가 방대한 경우, 페이지를 로딩하는 것이 처음부터 영원히 걸릴 것입니다. – Esailija

+0

@Esailija IE6/7을 사용하는 경우 사용자에게 충분합니다. 작은 웹 사이트에서도 선택기에 문제가 있습니다. –

+0

저는 그렇게 생각하지 않습니다. 그렇습니다. 느리지 만 느리지는 않기 때문에 페이지로드 당 한 번 이러한 선택기를 사용할 수 없습니다. 어쩌면 그가 mousemove 처리기에서이 작업을 수행하려고 시도했다면 문제가 될 수 있습니다. – Esailija