2012-03-06 1 views
4

일부 PNG가 반복적 인 루프로 화면 주위를 움직여 일부 브라우저가 손상 될 수 있습니다. 예를 들어반복 애니메이션이 브라우저를 중단 시키나요?

: 애니메이션이 완료

function parachute_drop(drop_object, animation_duration) { 

    $(drop_object) 
     .animate({top: "750px"},animation_duration) 
     .animate({top:"-150px", opacity: 100 
     },{ 
     duration: 0, 
     complete: function(){ 
      parachute_drop(drop_object,animation_duration); 
     } 
    }); 
} 

parachute_drop('#object_id',10000); 

매번, 다시 무한대로 기능을 실행.

나는 이것이 문제가 될 것이라고 생각하지는 않았지만, 이것이 좋지 않다고 들었습니다. 그리고 내 사이트가 지금 당분간 부서지기 시작했습니다.

이렇게 안정된 방식으로 끝없는 루프를 수행하는 방법이 있습니까? 9kb png 파일을 화면 맨 위에서 맨 아래로 이동하는 것이 시스템 리소스에 부담을주는 것은 이상한 것 같습니다. 문제는 무엇이며 어떻게 더 잘 접근 할 수 있습니까?

+0

봐. – switz

+0

@ 스 위츠 : jQuery가 그를 위해 사용하고 있습니다. – SLaks

+0

루핑으로 애니메이션을 보여주는 대신 jawsjs, impact, gamequery 등의 자바 스크립트 게임 라이브러리를 살펴 보는 것이 좋습니다. 자세한 정보는 https://gist.github.com/768272 – TheVillageIdiot

답변

2

코드는 재귀 알고리즘이므로 브라우저의 자바 스크립트 컴퓨터 코드 스택을 채울 때 충돌이 발생할 수 있습니다. 타이머를 기반으로 다른 접근법을 사용하여 연속 루프를 달성 할 수 있습니다.

이 예에서 시작할 수 있습니다 setTimeout` 또는`setInterval``에에서 http://www.irengba.com/codewell/

+0

나는 그것을 볼 수있다. 나는 그 튜토리얼을 따르고 있었지만 누군가 내 자신의 기능을 만들고 그냥 그 자체 내에서 호출하도록 제안했다. 이 튜토리얼이하는 일 중 하나 인 것처럼 보이지만 다른 방법을 사용해야합니다. – willdanceforfun

+0

사실이 아닙니다. @ cosmicbdog의 코드는 재귀가 아닌 비동기식입니다. – SLaks

+0

애니메이션은 Jquery 코드를 기반으로 한 비동기식이지만 완성 된 메서드는 체인 인수이며 재귀 적 메서드처럼 체인화 메서드를 완료하지 않으면 불안정 할 수 있습니다. –

관련 문제