JavaScript 코드에 흥미롭지 만 어려운 문제가 있습니다. 기본적으로, 나는 교육적인 이유로 자바 스크립트 (당신이 궁금해하는 경우 정렬 알고리즘)를 사용하여 간단한 알고리즘의 애니메이션을 만들려고합니다. 나는 이미 (RaphaelJS를 사용하여) 작성된 모든 애니메이션 코드를 가지고 있으며, 모든 것이 잘 동작한다. 문제는 적절한 시간에 알고리즘의 애니메이션을 얻는 것입니다. JavaScript는 실제로 실행을 "일시 중지"할 방법이 없으므로 각 단계마다 애니메이션을 천천히 실행하여 알고리즘을 단계적으로 수행 할 수는 없습니다. 알고리즘이 학생이 이해할 수있는 속도로 진행된다면 교육적 관점에서 볼 때 훨씬 더 가치가 있습니다.코드 애니메이션을위한 JavaScript 실행 일시 중지
내가 생각할 수있는이 문제를 해결하는 방법에는 두 가지가 있으며, 둘 다 빨기도합니다. 첫 번째는 미친 setTimeout() 코드를 사용하는 것입니다. 이것은 아마도 매우 어려울 것입니다 - 알고리즘의 다른 부분을 올바른 타임 아웃과 연관시키기 위해서는 많은 이상한 코드 변환이 필요할 것입니다. 저는 이미이 작업을 조금 해보려했지만, 사소한 알고리즘으로 인해 매우 복잡해졌습니다.
두 번째는 통화 대기입니다. 이것은 아마 또한 작동 할 것입니다. 문제는 JavaScript 코드에서 바쁜 대기가 꽤 나쁜 생각이라는 것입니다. 실제로이 대안을 테스트 할 때 Firefox를 추락 시켰습니다. 기본적으로, 내가 바라 보는 또 다른 해결책이 있는지 궁금 하네. 학교 서버의 정적 HTML 및 자바 스크립트 이외의 다른 서비스를 제공해야하는 자유의 양이 의심 스럽기 때문에 솔루션이 클라이언트 측만인 경우 보너스 포인트입니다.
'setTimeout()'또는'setInterval()'을 사용하여 실행 가능한 해결책이 있다고 생각하지만, 물론 일부 코드를 보지 않고는 알 수 없습니다. JS 프로그래머가 얼마나 훌륭한가요? 'setTimeout()'에 클로저를 전달하는 방법을 알고 있습니까? 알고리즘은 현재 상태를 알고리즘의 다음 단계로 전송하는 데 유용 할 수 있습니다. –