2014-03-18 1 views
4

나는 온라인과 자기 제작 환경의 조합을 사용하여 자바 스크립트 프로그래밍을 가르치고있다.자바 스크립트에서 while (true) 루프를 방지하는 방법은 무엇입니까?

무한 루프를 만들 때 대부분의 아이들이 시간을 보게됩니다. 지나간 날들. 무한 루프는 자바 스크립트에서 그런 일을 작성

10 PRINT "Mike is cool" 
20 GOTO 10 

while(true) { 
    print("Mike is cool"); 
} 

때문에 자바 스크립트의 동기 성격 작동하지 않는 문제가 함께 아이의 첫 번째 프로그램이 될 것으로 예상하고, 그 뭔가였습니다 그들은 배워야 할 것이다. 문제는 프로그램이 예상대로 작동하지 않는다는 것이 아니라 프로그램을 실행할 때 전세계가 멈 춥니 다!

일부 브라우저에는 창을 닫을 수있는 충분한 제어 권한이 있으며 잠금 기능이 있습니다. 당신이 (jsfiddle 같은 jsbin 등) 인 - 브라우저 환경을 사용하는 경우 사전에 코드를 감사 할 수

불량 "작업"을 중지 할 수있는 충분한 제어 할 수 없습니다 (말 그대로 는 정지입니다 문제를 해결할 수있는 합리적인 방법이 있습니까?

칸 아카데미의 프로그래밍 환경은 달성 할 것이는 과도한 실행 시간을 처리하는 일을 무엇

http://www.khanacademy.org/cs/breaking/4804951998988288

? 잠시 동안 계속이 작업을 수행하는 방법은 무엇입니까?

+1

'에서는 setInterval()' – zerkms

+1

내가 칸 아카데미와 Codecademy에서를 믿고 해당 사이트가 로컬 서버에 자신의 코드를 실행하지, 사용자에게는 훨씬 더 많은 제어 및 모니터링 기능이 있으며 사용자의 브라우저에서 코드를 실행하지 않습니다. –

+2

명령 줄 JavaScript 인터프리터 (예 : Node.js의 V8)를 사용하여 기본 사항 (이 경우 포함)을 다룰 수 있습니다. 메모장 (또는 적당한 편집기)에서 스크립트를 만들고 그냥'node script.js'로 실행 시키십시오. 그들이 무한 루프를 만들면 CTRL-C를 누릅니다. 온라인 도구만큼 화려한 것은 아니지만 시작하기에 좋지 않습니다. –

답변

0

브라우저에서 웹 작업자를 위해 별도의 스레드를 실행하기 때문에 웹 브라우저의 UI 스레드를 잠그지 않는 웹 작업자를 사용하여 브라우저에서이를 수행 할 수 있습니다. 예제에 대한 루핑 코드는 웹 작업자에서 실행됩니다.

웹 작업자 스레드는 HTML5 기능이므로이 방법은 구형 브라우저에서 작동하지 않습니다. 적어도 크롬과 사파리에서는 중단 점을 설정하고 웹 작업자를 디버그 할 수 있습니다. 당신은에서 웹 작업자 스레드의 기초를 배울 수 있습니다 : 당신은을 통해 그것을 실행할 수

http://www.html5rocks.com/en/tutorials/workers/basics/

관련 문제