제가 자바 스크립트를 배우고있을 때 데스크탑 애플리케이션 배경에서 왔는데, 자바 스크립트의 스레딩 메커니즘을 이해하는 것은 정말 어렵습니다. 예를 들어자바 스크립트에 멀티 스레딩이 있습니까?
:
<!DOCTYPE HTML>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#btn1").click(function(){
for (var i = 0 ; i < 100000 ; i ++){
$("#loop1").html(i);
}
});
$("#btn2").click(function(){
for (var i = 0 ; i < 100000 ; i ++){
$("#loop2").html(i);
}
});
});
</script>
</head>
<body>
Loop 1 : <p id="loop1"></p>
<button id="btn1">Button 1</button>
<br/><br/><br/>
Loop 2 : <p id="loop2"></p>
<button id="btn2">Button 2</button>
</body>
</html>
나는 그것을 클릭하면 버튼 2가 반응하지 않도록 나는, 버튼 1, 브라우저 요령 클릭
. 일반적으로 데스크톱 응용 프로그램에서 루핑을 백그라운드 스레드에 게시합니다. 하지만 자바 스크립트로 어떻게 할 것인가? 또는 Javascript에서 긴 처리를 처리하는 가장 좋은 방법은 무엇입니까?아래 코드는 작동하지 않습니다,하지만 왜 확실하지 :
편집.
$("#btn1").click(function(){
setTimeout(function(){
for (var i = 0 ; i < 100000 ; i ++){
$("#loop1").html(i);
}
}
, 0);
});
이 읽기 - http://www.htmlgoodies.com/html5/tutorials/introducing-html-5-web-workers-bringing-multi-threading- to-javascript.html # fbid = pjvP9hIpB6g – lifetimes
또한 http://www.sitepoint.com/multi-threading-javascript/. –