2011-10-26 3 views
1

jQuery 스크립트를 작성한 후 (문서) .ready (function ($)) 함수를 사용했습니다. 웹 사이트가 느려지는 경우 보다 당신이 사이트를 감속하지 않고 같은 기능을 만드는 데 나에게 길을 보여 주실 래요? 대단히 감사합니다!

<script> 
jQuery(document).ready(function($){ 
    $('#columns').wrapInner('<div id="columnsInner" />'); 
    $("div.productInfo:first").wrap("<div id='productDetails' />"); 
}); 
</script> 
+0

주 (기능 ($) {', 또는 경우에 ' '$'에 충돌이 없다. 단지 $ (function() {' – Eric

+0

만약 당신이 성능을 가지고 있다면 귀하의 사이트에 문제가있어 다른 원인을 찾았습니다. –

+0

@Eric 한 번 jQuery에서 $로 줄이려고 시도했지만 이상한 이유로 작동하지 않습니다. – Hersh

답변

3

간단히 ready 상당한 성능에 미치는 영향이 없습니다 사용. 더 큰 문제가되는 사용 선택기 . 예를 들어 querySelector. 인 최신 브라우저에서는 "div.productInfo : first"가 정상적으로 작동해야합니다. 그러나 이전 브라우저에서는 divs까지 루프해야 할 수 있습니다. 그것은 성냥을 찾습니다. 그 div에 ID가 있다면 피할 수 있습니다. 나는 반드시 그것을 옹호하지는 않는다. 그것은 단지 일반적인 고려 사항입니다.

편집 : 쿼리를 사용하여 먼저 CSS 사양의 jQuery를 확장하지 일부입니다 :

을하기 때문에 : 사실, 난 그것 노트 이후 JQuery와, querySelector (모든)를 활용하지 않을 생각 먼저 할 수 없습니다 네이티브 DOM querySelectorAll() 메서드에서 제공하는 성능 향상을 활용하십시오. 첫째 요소를 선택하려면 먼저 다음 사용 .filter ("첫 번째") 순수 CSS 선택기를 사용하여 요소를 선택 사용할 때 최상의 성능을 달성하기 위해. "그래서

을도 새로운 브라우저, 그것을 사용하는 것이 좋을 것이다 :. 당신이 jQuery를`에 그것을 줄일 수

$("div.productInfo").filter(":first") 
jQuery를 여전히 이전 버전의 브라우저에서 div의 돌이 할 것

+0

"모든 div를 반복해야 할 수도 있습니다." - 가능성은 희박합니다. 나는 sizzle.js가 처음 발견되면 멈출만큼 충분히 똑똑하다고 생각합니다. – Eric

+0

감사합니다. 하지만 코드가이 $ ('# rightColumn')과 같은 경우에도 마찬가지입니다. insertBefore ('# center-right-wrapper'); ? – Hersh

+0

@ 에릭 (Eric), 나는 그것이 내포되었다고 생각했다. 여전히 평균을 반으로 늘려야합니다. –

관련 문제