2011-07-06 8 views
3
$('.classname').live('click',function() { some code; }); 

이 클래스에 약 100-200 개 요소가 있으면 성능에 문제가 있습니까?라이브 메서드에 대한 질문이 있습니다

+1

$(document).delegate(selector,...)는 라이브 사용해야합니까 본질적으로? 이러한 요소를 동적으로 추가하지 않으면 $ ('. classname')을 사용할 수 있습니다. click (function() {some code;}); – dave

+0

'live()'와'delegate()'둘 다 이제는 더 이상 사용되지 않습니다. 가능한 경우'on()'을 사용하십시오 – danwellman

답변

1

내용에 따라 크게 달라질 수 있습니다. { some code } 유일한 방법은 설정하고 테스트하는 것입니다. 성능이 충분하다면 아무런 문제가 없습니다. 성능이 좋지 않은 경우 Firebug 및/또는 Chrome/Safari 개발자 도구에서 프로필을 분석하고 바인딩 된 기능을 더욱 최적화 할 수 있습니다.

1

livedelegate은 실제로 은 많은 요소에 대해 성능을 개선해야합니다. 물론 bind과 비교하면됩니다. live이 느리면 실질적으로 bind이 더 나쁠 것이라고 보장 할 수 있습니다.

이유는 delegate 호출 *하는 단일 소자에 저장하는 기능을하는 bind 통화 저장 동안 모든 요소의 기능의 사본.

대리자를 사용할 때 이벤트를 catch하고 자식 요소의 컨텍스트에서 콜백을 호출하는 부모 요소에 수신기를 저장합니다.

조기에 최적화하지 마십시오. 이미 문제가 발생했다면 코드를 재사용 가능한 덩어리로 분리 해보고 얼마나 줄일 수 있는지보십시오. 문제가 없다면 문제가 무엇입니까?

* live

관련 문제