我想在一个线程运行时锁定其他线程。在.Net中可以使用锁定对象。我需要在AJAX中做同样的事情。
function f_OrnekleriGetir(bKaydet) {
var ddlKlinikId = "<%=ddlKliniklker.ClientID%>";
var iKlinikId = $("#" + ddlKlinikId + " option:selected").val();
var arrOrnekNolar = new Array();
$(".tdOrnekNo").each(function(idx, td) {
var sOrnekNo = $(td).html();
arrOrnekNolar[idx] = sOrnekNo;
});
for (var i = 0; i < arrOrnekNolar.length; i++) {
// i want to wait in here...
f_OrnekGetirKaydet(arrOrnekNolar[i], iKlinikId, bKaydet);
}
}
}
有可能吗?
KR,
Çağın
答案 0 :(得分:2)
您可以通过循环“锁定”主线程。不过,这里有一些主要的缺点。
如果要在等待Ajax请求时锁定线程,可以同步发送请求。然而,这将与阻塞循环具有相同的缺点。
正如MunkiPhD所说,你可能错误地看待了这个问题。回调在JavaScript中被广泛使用以避免阻塞UI线程,几乎可以保证构造代码以在计时器或事件上使用回调函数将比您当前想到的要好得多。
答案 1 :(得分:1)
你不能在javascript中进行多线程处理。它都是单线程的。
答案 2 :(得分:0)
我不确定你是否可以在Javascript中锁定线程,但我认为这归结为一个设计问题。应该为可以并行运行的进程运行线程。如果您希望线程等待来自另一个线程的响应,那么您正在错误地查看该问题。
无论哪种方式,你有没有调查Web Workers?