2012-09-04 3 views
1

단일 웹 응용 프로그램에 jQuery를 사용하고 있으며 고정 된 값에서 고정 된 값 (~ 50px에서 75px까지)으로 단일 DIV의 높이를 애니메이션화해야합니다.jQuery animate() - 호출이 매우 느립니다.

놀랍게도 애니메이션 자체에 관한 것이 아니라 animate() - 메서드의 실제 호출과 관련하여 놀라운 성능 문제가 있음을 알고 있습니다.

window.time = {}; 
time.start = new Date().getTime(); 

$('div').animate({height: '25px'}, 500); 

time.end = new Date().getTime(); 

이 코드를 실행, 페이지의 모든 DIV 년대의 애니메이션이 다시 유창하지만,

time.end - time.start = 190 

그래서 애니메이션의 초기화는 약 190ms 물론

이 응답 시간을 필요로 unaccaptable입니다.

당신 중 일부는 그러한 문제를 경험하고 아이디어/해결책이 있습니까?

미리 감사드립니다.

레오

답변

0

내가 그런 전화의 성능이 특히 나쁜 적이 없었습니다, 그러나 당신은 분명 애니메이션있는 div의 수에 따라 확장 할 것이다, 어쩌면 당신의 문제입니다.

애니메이션에 의존하지 않는 다른 작업을 수행하려면 setTimeout(function() { ... }, 0)을 사용하여 별도로 실행하십시오. 수행중인 작업을 모두 완료하면 함수에서 돌아 왔을 때 실행됩니다.

0

모든 div에 대해 (시작 및 종료 값 설정, 간격 설정, 단계 증분 계산 등) 수행됩니다. 따라서 기간은 div 수에 따라 다르며 선형 적으로 비례하므로 jquery를 사용하여 개선 할 수있는 합법적 인 방법은 없습니다.

관련 문제