2012-04-30 2 views
1

기능이 있습니다. GoToCell(number); 이 기능은 플레이어의 동작을 렌더링합니다. 나는 그런 상황이 발생했다 : 사람은이 기능을 호출의 마지막 실행 전에 두 번 호출한다. 이고 통화가 끊어지고 2 통화에서 통화가 시작됩니다. 나는 그것을 끝내기까지는 작동하지 않는다고 부를 필요가있다.자바 스크립트의 스레드

+5

스레드에 javscript 가능하지 않습니다. –

+7

사람들은 여기 downvote의 의미를 모릅니다 ...이 사이트는 등록 아이를 중지해야합니다. –

+1

왜 질문이 downvoted되고 있습니다!? – Nadh

답변

4

문제는 스레드와 관련이 없지만 애니메이션이나 동영상 재생과 관련이있는 것 같습니다. 이 질문에서 이야기하기가 어렵습니다.

그러나 두 가지 경우의 대답은 애니메이션이나 진행중인 모든 것을 알려주는 플래그를 설정하고 완료 콜백을 사용하여 플래그를 지우는 것입니다. 그런 다음 사용자가 위젯을 클릭하거나 애니메이션의 두 번째 복사본을 시작하지 않을 때 플래그를 확인하십시오.

코드 나 컨텍스트가 없어도 특별히 도움이되는 것은 아니기 때문에 여기에 jQuery 애니메이션을 사용한 예가 나와 있습니다. |

Live copy : 난 그냥 이 (완료 콜백을 사용하여, 중복 활성화를 방지 플래그를 설정) 위에 나열된 개념을 시연, 또는 아무것도 "jQuery를 사용하여"말하는 게 아니에요 source

HTML :

<input type="button" id="theButton" value="Click to animate"> 
<div id="target"></div> 
<div id="output"></div> 

CSS :

#target { 
    position: absolute; 
    left: 0px; 
    top: 3em; 
    border: 1px solid black; 
    background-color: #00d; 
    width: 20px; 
    height: 20px; 
} 
#output { 
    margin-top: 6em; 
} 

자바 스크립트 :

jQuery(function($) { 

    var animating = false; 
    var direction = "+"; 

    $("#theButton").click(function() { 
    // Are we already animating? 
    // (Of course, ideally you'd disable the button or similar) 
    if (animating) { 
     // Yes, say we're busy 
     display("Animation still in progress"); 
    } 
    else { 
     // No, do it 
     display("Animating..."); 
     animating = true; 
     $("#target").animate({ 
     left: direction + "100" 
     }, 3000, function() { 
     // Completion callback, we're not animating anymore 
     animating = false; 
     display("Done"); 
     }); 
     direction = direction === "+" ? "-" : "+"; 
    } 
    }); 

    function display(msg) { 
    $("<p>").html(String(msg)).appendTo("#output"); 
    } 

}); 
1

웹 작업자를 살펴볼 수 있습니다. https://developer.mozilla.org/En/Using_web_workers

자바 스크립트에서 스레드와 비슷한 동작을하는 것이 지금까지 유일한 방법입니다. 나는 그것이 모든 브라우저에 의해 구현된다고 생각하지 않는다.

1

당신이 찾고있는 작업자 나 스레드가 필요한지 잘 모르겠습니다. debounce, throttle 또는

은 밑줄을 사용하지 않으려면 once, 당신이 라이브러리의 소스를 읽을 제안과

IMO Underscore's function for Functions는 꽤 짧은 그리고 물론, 당신은 당신이 찾고있는 것을 달성을 도울 수 댓글을 달았습니다.