우선 jQuery는 자바스크립트라는 점을 명심하세요. 이는 동일한 코딩 규칙, 스타일 가이드 및 모범 사례를 채택해야 함을 의미합니다.
먼저 JavaScript 초보자라면 "JavaScript 초보자를 위한 24가지 모범 사례"를 읽어보시길 권합니다. 이 내용은 jQuery를 접하기 전에 읽어보는 것이 가장 좋습니다.
jQuery를 사용할 준비가 되면 다음 지침을 따르는 것이 좋습니다.
1. 변수 캐싱
DOM 탐색에는 비용이 많이 들므로 재사용된 요소를 캐시해 보세요.
h = $('#element').height();
$('#element').css('height',h-20);
//제안
$element = $('#element');
h = $element.height();
$element.css('height',h-20);
$element = $('#element');
h = $element.height();
$element.css('height',h-20);
//제안
var $element = $('#element');
var h = $element.height();
$element.css('height',h-20);
var first = $('#first');
var second = $('#second');
var value = $first.val();
// 제안 - jQuery 객체 앞에 $
를 붙입니다.var $first = $('#first');
var $second = $('#second'),
var value = $first.val();
$first.click(function(){
$first.css('border','1px solid red');
$first.css('color','blue');
});
$first.hover(function(){
$first.css('border','1px solid red');
})
// 추천
$first.on('click',function(){
$first.css('border','1px solid red');
$first.css(' 색상','파란색');
})
$first.on('hover',function(){
$first.css('border','1px solid red');
})
$first.click(function(){
$first.css('border','1px solid red');
$first.css('color','blue');
});
//제안
$first.on('click',function(){
$first.css({
'테두리':'1px 단색 빨간색',
'color':'파란색'
});
});
$second.html(값);
$second.on('click',function(){
Alert('안녕하세요 여러분');
});
$second. fadeIn('slow');
$second.animate({height:'120px'},500);
//제안
$second.html(값);
$second.on('click',function(){
Alert('안녕하세요 여러분');
}).fadeIn('slow') .animate({height:'120px'},500);
$second.html(값);
$second.on('click',function(){
Alert('안녕하세요 여러분');
}).fadeIn('slow') .animate({높이:'120px'},500);
//제안
$second.html(값);
$second
.on('click',function(){ Alert('안녕하세요 여러분');})
.fadeIn('slow')
.animate({height:'120px'},500);
function initVar($myVar) {
if(!$myVar) {
$myVar = $('#selector');
}
}
//제안
function initVar($myVar) {
$myVar = $myVar || $('#selector');
}
if(collection.length > 0){..}
//제안
if(collection.length){..}
var
$container = $("#container"),
$containerLi = $("#container li"),
$element = null;
$element = $containerLi.first()
//... 많은 복잡한 작업
//더 좋습니다
var
$container = $("#container"),
$containerLi = $container.find("li"),
$element = null;
$element = $containerLi.first().detach()
//... 많은 복잡한 작업
$container.append($element);
$('#id').data(키,값);
// 제안(효율적)
$.data('#id',key,value);
var
$container = $('#container'),
$containerLi = $('#container li'),
$containerLiSpan = $('#container lispan');
// 제안(효율적)
var
$container = $('#container '),
$containerLi = $container.find('li'),
$containerLiSpan= $containerLi.find('span');
$('.container > *')
//제안
$('.container').children();
암시적 범용 선택자를 피하세요
범용 선택자는 때때로 암시적이어서 찾기 어렵습니다.
// 이런
$('.someclass :radio')
//제안
$('.someclass input:radio');
선택기 최적화
예를 들어 Id 선택기는 고유해야 하므로 추가 선택기를 추가할 필요가 없습니다.
// 이런
$('div#myid')
$('div#footer a.myLink');
// 권장 사항
$('#myid');
$('#footer .myLink');
$('#외부 #내부')
//제안
$('#inner');
더 이상 사용되지 않는 메서드 포기
새 버전이 나올 때마다 더 이상 사용되지 않는 메서드에 주의를 기울이고 이러한 메서드를 사용하지 않도록 노력하는 것이 매우 중요합니다.
$('#stuff').live('click', function() {
console.log('만세');
});
// 제안
$('#stuff').on('click', function() {
console.log('hooray');
});
18. 필요한 경우 jQuery와 자바스크립트 네이티브 코드를 결합합니다.
위에서 언급했듯이 jQuery는 자바스크립트이므로 jQuery로 할 수 있는 모든 작업은 네이티브 코드로도 수행할 수 있습니다. 네이티브 코드(또는 바닐라)는 jQuery만큼 읽기 쉽고 유지 관리가 어려울 수 있으며 코드가 더 깁니다. 그러나 이는 또한 더 효율적이라는 것을 의미합니다. 일반적으로 기본 코드에 가까울수록 가독성이 낮을수록 성능이 높아집니다. 예를 들어 조립에는 물론 더 강력한 인력이 필요합니다. 어떤 프레임워크도 네이티브 코드보다 더 작고, 가벼우며, 더 효율적일 수 없다는 점을 기억하세요
바닐라와 jQuery의 성능 차이를 고려하여 두 가지 장점을 최대한 활용하고 (가능한 경우) jQuery와 동등한 네이티브 코드를 사용하는 것이 좋습니다.
19. 최종 조언
마지막으로 이 글을 기록하는 목적은 jQuery의 성능 향상과 기타 좋은 제안입니다. 이 주제를 더 깊이 탐구하고 싶다면 많은 재미를 발견할 것입니다. jQuery는 필수가 아니라 옵션일 뿐이라는 점을 기억하세요. 왜 그것을 사용하고 싶은지 생각해보십시오. DOM 조작? 아약스? 원판? CSS 애니메이션? 아니면 선택기 엔진인가요? 아마도 자바스크립트 마이크로프레임워크나 사용자 정의된 jQuery 버전이 더 나은 선택일 것입니다.