2012-06-21 2 views
2

자바 스크립트에서 더 큰 것들을 만들기 시작하고 있으며 스타일과 성능을 코딩하는 것에 대해 궁금합니다. 이제이 경우에 이벤트 핸들러를 부착하는 가장 좋은 방법은 무엇인지 알아 내려고합니다. 문서에 div가 있고 각각에 대해 대응하는 ID가있는 Item() 생성 객체가 있습니다. 각 div의 이벤트 처리기에서 항목 개체 표현에 액세스하려고합니다. 아이템은 무겁게 조작되고, 삭제되고, 삭제 될 것입니다. 코드 here을 볼 수 있습니다 (일반적인 코딩 스타일의 피드백은 정말 감사 할 것입니다).대형 시스템에서 이벤트 처리기를 연결하는 모범 사례

나는이 작업을 수행 할 수 있습니다 :

  1. 를 직접 항목 생성자에서 내 모든 이벤트 핸들러를 가짐으로써 그렇게 가 건설되고 객체 (이 = VAR)에 액세스 할 수 있습니다. 여기에이 코드를 모두 포함시키는 것이 좋지 않다고 생각하지만 나는 이것을 과소 평가할 수도 있습니다.

  2. 별도 handlerCollection 객체 에 저장된 핸들러를 갖는 보조 기능 항목 객체에 액세스 getItemFromDOM (DIV) 배열에 해당 항목 div의 ID 및 검색을 읽는 여기서 문서의 모든 상품 이 저장됩니다.

  3. 그 안에 을 사는 것 핸들러의 항목 위에 클로저를 생성하는 항목 생성자에서 호출 및 에 사용되는 코드 어딘가에 separarte 함수 registerItemEvents (항목)를 가졌어요.

내가 가장 우아하다고 생각하는 것은 제 3의 것이지만, 나는 첫번째 것을 뒤집어서 과잉 해 보일 수도 있습니다. 또한 세 번째 항목을 사용하여 항목을 삭제하기 시작하면 항목을 닫으면 메모리가 해제되어 궁극적으로 모든 작업이 느려질 수 있습니다. 항목을 삭제하기 전에 이벤트 처리기를 릴리스하기 만하면 문제를 해결할 수 있습니까?

답변

0

가능하면 대표를 사용하는 것이 좋습니다. 내가 아는 바로는, 이벤트 핸들러를 추가하고 제거하면 불필요한 오버 헤드가 추가됩니다.

구현 방법 (jquery, yui, other, custom)에 관계없이 Yahoo! 좋은 정보가 있습니다.

http://www.yuiblog.com/blog/2009/11/13/event-delegation-3/

관련 문제