2010-04-29 8 views
2

요소에 mousemove 이벤트를 바인딩하면 Internet Explorer를 제외한 모든 브라우저에서 부드럽게 작동합니다. IE의 경우 CPU 사용량이 너무 많아서 관련된 일부 정보 (예 : 툴팁)가보기 흉합니다. 성능 문제를 제거 할 수있는 방법이 있습니까? (예, 알고 IE를 사용하지 마십시오 :))jQuery mousemove 성능

업데이트 : 비록 이벤트 처리기 기능에서 아무것도하지 않더라도 CPU 사용률이 여전히 높습니다. 내 코드는 다음과 같습니다.

$("#container").live("mousemove", function(e){ 

}); 

정상입니까?

+0

'mousemove'에서 무엇을하고 있습니까? 그 대답은 크게 그것에 달려 있습니다. –

+0

툴팁의 왼쪽 상단 위치를 설정했습니다. 하지만 내가 아무 것도하지 않더라도 CPU 사용량은 여전히 ​​높습니다. – Colby77

+0

jQuery의 어떤 버전입니까? 그리고 왜 코드를 제공하지 않고 이와 같은 질문을 할 수 있습니까? 우리가 마술사라고 생각하니? 이 문제는 이벤트 처리기와 관련된 99.9 %이고 IE가 아닙니다. –

답변

0

IE에서도 마우스 이동 이벤트에 간단한 업데이트를 바인딩하는 데 문제가 없어야합니다. 드래그 앤 드롭은 최근 웹 사이트에서 볼 수 있듯이 정확하게 구현됩니다.

CPU에 막대한 스파이크가있는 경우 큰 원인이있을 수 있습니다.

2

mousemove 이벤트에서 jquery 선택기를 사용하고 있습니까? jquery 선택기가 복잡한 페이지에서 느려지는 경우를 보았습니다. 여러 번 실행되는 이벤트에 선택기를 배치하면 눈에 띄는 지연이 있습니다. 대부분의 경우 mousemove 전에 jquery 참조를 요소에 저장하면 mousemove는 호출 될 때마다 DOM을 내부적으로 다시 가로 지르는 선택기를 사용하는 대신 요소 참조를 다시 사용합니다.