guiのフリーズを防ぐために、ページ上のスレッドを分離したいと思います。このため、setTimeoutを使って別のスレッド内でguiをフリーズするが、まだフリーズする関数を実行しています。javascript内の別のスレッド内でコードを実行しています
コードとjsbinリンクは以下の通りです:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"
type="text/javascript"></script>
<meta charset="utf-8" />
</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
<input type="button" value="düðme" id="btn" />
<script type="text/javascript">
$("#btn").on("click",function(){
$("#div1").html(new Date());
});
$(document).ready(function(){
setTimeout(function() { count(); },1);
});
function count(){
for(var i =0;i<100000;i++){
$("#div2").html(i);
}
$("#div2").append(new Date());
}
</script>
</body>
</html>
。すべてが同じスレッドで実行されます。唯一の例外はWebWorkersです。 – mishik
jquery ajaxリクエストは、 'async:true'と言うと、別のスレッドで動作しています。私は現在、ウェブワーカーに関する良い情報を探しています。私はguiがまだタッチ可能で、ネットワークから別のデータをロードしている間に、他のスレッドで何かを実行する必要があります。 – uzay95
そのajaxリクエストのコールバックは、同じスレッドで実行されます。 'async:true'は、ブラウザがajaxの呼び出し結果を待っている間に、他のタスクを扱う時間をブラウザが費やすことができることを意味します。 – mishik