Я прихожу из фона рабочего стола, когда я изучаю Javascript, очень сложно понять механизм потоковой передачи в Javascript.Javascript с многопоточным?
Например:
<!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>
При нажатии на кнопку 1, браузер похмелья, поэтому кнопка 2 не будет реагировать, когда я нажимаю его. Обычно в настольном приложении я отправляю цикл в фоновый поток. Но как я буду это делать в Javascript? Или что лучше всего подходит для обработки длительной обработки в 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/. –