2010-06-18 6 views
1

아주 간단한 질문 :(또는 유사) 문

$(".addthis_toolbox").append('<a class="addthis_button_delicious"></a>'); 
$(".addthis_toolbox").append('<a class="addthis_button_facebook"></a>'); 
$(".addthis_toolbox").append('<a class="addthis_button_google"></a>'); 
$(".addthis_toolbox").append('<a class="addthis_button_reddit"></a>'); 
. 
. 
. 
$(".addthis_toolbox").append('<a class="addthis_button_yetanotherservice"></a>'); 

답변

0

자바 스크립트를 수행합니다 나는 (새 변수 등을 선언 = 소란) 최대 가독성, 최적의 성능과 최소한의 소란 다음과 같은 jQuery 코드를 최적화 할

with($(".addthis_toolbox")) 
{ 
    append('<a class="addthis_button_delicious"></a>'); 
    ... 
} 

당신은 비록 문을 변수 범위 using에 관한 약간의 혼란 문제로 실행 할 수 다음 with 문이있다.

당신은 같은 일을 달성하기 위해 체인을 사용할 수 있습니다

$(".addthis_toolbox").append('<a class="addthis_button_delicious"></a>') 
        .append(...) 
        .append(...); 
+0

사람이 대답을 downvote나요? –

+0

@Salman A - 예. 왜 그래도. –

+1

나는 downvote를하지 않았지만, Javascript 커뮤니티는'with' 진술을 매우 나쁜 생각으로 비난함에있어 사실상 만장일치 다. 일반적으로 성능 저하로 이어지는 ** 최적화 **가 아닙니다. 또한 메모리 누수가 발생할 수 있습니다. 정말로, 그것은 좋은 생각이 아닙니다. – Pointy

6
그냥 같이, 같은 jQuery를 객체에 체인을 유지할 수

:

$(".addthis_toolbox").append('<a class="addthis_button_delicious"></a>') 
        .append('<a class="addthis_button_facebook"></a>') 
        .append('<a class="addthis_button_google"></a>') 
        .append('<a class="addthis_button_reddit"></a>'); 
+0

더 나은 점은 모든 요소가 포함 된 단일 문자열을 추가하는 것입니다. –

+1

@Andy -이 예제에서는 *와 동의하지만 * 여기에서 놀고있는 다른 것일 수 있습니다. 앵커에 대한 단일 문자열은 많은 .addthis_toolbox 요소가있는 경우 여기에 상당한 성능 향상을 제공하는 캐시 된 문서 조각이지만 질문의 "..."부분이 무엇인지 확실하지 않았습니다. –

+0

@ 앤디 : 그렇습니다, 그것은 성능 - 현명한 최선의 방법이지만 가독성을 떨어 뜨릴 것입니다. –