Tôi muốn tách riêng chuỗi trên trang để ngăn chặn sự đóng băng của gui. Đối với điều này, tôi đang chạy các chức năng mà sẽ đóng băng gui bên trong một thread với setTimeout nhưng vẫn đóng băng.Chạy mã bên trong một chuỗi khác trong javascript
Mã và liên kết jsbin dưới:
<!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>
Đó vẫn sẽ được thực hiện trong cùng một thread. Mọi thứ sẽ được thực hiện trong cùng một luồng. Ngoại lệ duy nhất là WebWorkers. – mishik
nhưng yêu cầu jquery ajax đang hoạt động trong chuỗi khác nếu chúng ta nói 'async: true'. Tôi hiện đang tìm kiếm để tìm thông tin tốt về webworkers. Tôi cần phải chạy một cái gì đó trong các chủ đề khác trong khi gui vẫn có thể chạm và tải dữ liệu khác từ mạng. – uzay95
Gọi lại cho yêu cầu ajax đó sẽ vẫn được thực thi trong cùng một chuỗi. 'async: true' sẽ chỉ có nghĩa là trình duyệt có thể dành thời gian giao dịch với các tác vụ khác trong khi chờ kết quả cuộc gọi ajax. – mishik