2010-04-07 5 views
0

내가해야 할 임무를 맡은 컨퍼런스 웹 사이트에이 코드를 만들었습니다. window.setInterval을 사용하여 간단한 페이드 인/아웃 루프입니다. 파이어 폭스, 사파리, 구글 크롬에서 테스트 해봤습니다. 첫 번째 2는 잠시 후 응답을 멈추는 반면, Google 크롬은 스크립트가 너무 많은 메모리를 사용한다는 메모를 제공합니다. 스크립트의 어느 부분이 너무 많은 메모리를 사용하고 있으며 어떻게 수정해야합니까?이 fadeIn/fadeOut jQuery 코드가 내 브라우저를 충돌시킵니다 - 왜?

현재 마케팅 사이트로 사용하고 있으므로 백업 복사본으로 되돌려 야합니다. 따라서이 문제에 대한 URL을 제공 할 수 없습니다. 나는 반복 타이머를 설정하는 데 사용됩니다

<span id="alertTxt" style="text-align:center; color:#CC0000; display:none">Director of Information Technology, Network Communications, Security, Smart Metering, Operations, C-Level Executives</span> 
<span id="alertTxt2" style="text-align:center; color:#CC000; display:none">This Conference is for You!</span> 

<script type="text/javascript"> 
function animateTxt() { 
    $j("#alertTxt").fadeIn(2000); 
    $j("#alertTxt").delay(6000).fadeOut(1500); 
    animateTxt2(); 
    window.setInterval("animateTxt()",22000); 
} 
function animateTxt2() { 
    $j("#alertTxt2").delay(1500).fadeIn(2000); 
    $j("#alertTxt2").delay(6000).fadeOut(1500); 

} 
animateTxt(); 
</script> 

답변

4

하여 setInterval까지 내 더미 사이트를 얻을로 그러나 나는 곧 하나를 제공 할 것입니다. animateTxt()의 끝에서 setInterval을 계속 사용하면 많은 타이머가 필요하게됩니다. setTimeout으로 변경하거나 함수 밖으로 이동하십시오.

3

당신이 완료되면 다음과 같이 트리거이를 다시 작성해야 대신 또는 시간에 완료되지 않을 수 있습니다 애니메이션 대기열의

function animateTxt() { 
$j("#alertTxt").fadeIn(2000).delay(6000).fadeOut(1500, function() { 
    $j("#alertTxt2").delay(1500).fadeIn(2000).delay(6000).fadeOut(1500,function(){ 
    animateTxt(); 
    }); 
}); 
} 
animateTxt(); 

, 성장 대기열에서 끝나는이가 애니메이션을 트리거 완료되면 루프하십시오. 현재 선형 속도로 증가하는 방법과 애니메이션이 스태킹을 시작하고 대기열이 빠르게 생성됩니다. 이렇게하면 한 번에 하나의 사이클 만 진행됩니다.

관련 문제