저희 팀은 jQuery Mobile을 사용하여 모바일 웹 사이트를 구축하고 있으며 출시일이 가까워지면서 성능이 더욱 중요시되고 있습니다. 우리가 만든 한가지 관찰은 코드 전체에 live()
과 delegate()
에 대한 많은 호출이 있다는 것입니다. 사실, 내 지식으로는 이벤트 핸들러를 사용하여 이미 존재하는 DOM 노드에 이벤트 핸들러를 연결하는 것입니다. 우리 애플리케이션의 컨텍스트에서는이 항상 존재합니다. 이 항상 존재합니다.bind()가 live() 및 delegate()보다 빠릅니까?
은 이들 각각은 document
루트 노드에 모든 방법까지 버블 한 이벤트 처리를 포함한다는 live()
및 delegate()
이 모두 나중에에 DOM에 나타날 수 있습니다 노드에 동적 바인딩을 제공하기위한 것입니다 점을 감안하고 고려 , 우리는 이러한 전화를 (적절할 경우) bind()
으로 변경하여 성능 향상을 볼 수 있을지 궁금합니다.
필자는이 방법을 직접 테스트 할 수 있음을 알고 있지만 JavaScript로 성능 테스트를 해본 경험이 많지 않습니다. 아마도 필자가 생각하는 것보다 더 오래 걸릴 것이라고 생각합니다. 단순히 커뮤니티에 물어 보는 것이 좋습니다. 아무도 이것을 테스트 했습니까? 측정 가능한 차이가 있습니까? 또는이 live()
과 delegate()
을 bind()
(으)로 전환하면 시간이 낭비가됩니까?
아시는대로 이벤트가 거품을 낼 수 있습니다.live() 메서드는 노드가 나중에 DOM에 나타나거나 처음부터 거기에 있었는지 신경 쓰지 않고 "list"전역 변수를 청취자에게 부착하고 적절한 객체에서 이벤트가 발생하면 수신 대기합니다. 기능을 수행합니다. 그리고 귀하의 문제에 관해서는 "조기 최적화는 모든 악의 근원입니다." – Mironor
@Mironor : 예, * 조기 * 최적화. –