gpt4 book ai didi

javascript - 如何在 Javascript 中锁定线程?

转载 作者:行者123 更新时间:2023-11-30 23:44:24 25 4
gpt4 key购买 nike

我想在一个线程运行时锁定其他线程。在.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);
}
}
}

这可能吗?

韩国,

恰金

最佳答案

您可以用循环“锁定”主线程。不过,这里有一些主要缺点。

  • JavaScript 在浏览器的 UI 线程上运行。这意味着页面的 UI 将被锁定,直到当前执行的 JavaScript 完成,从而阻止用户交互和渲染。
  • 某些浏览器会检测到需要很长时间才能完成的脚本,并询问用户是否要停止运行该脚本。
  • 如果浏览器没有响应,操作系统可能会询问用户是否要关闭浏览器。
  • 如果没有可靠的 break; 子句,您可能会陷入无限循环。请记住,在跳出循环之前,不会执行其他代码(甚至回调)。唯一会更改的属性是那些异步更改的属性,例如 readyState 属性。

如果您想在等待 Ajax 请求时锁定线程,您可以同步发送请求。然而,这将具有与阻塞循环相同的缺点。

MunkiPhD说,你可能错误地看待这个问题。回调在 JavaScript 中被广泛使用,以避免阻塞 UI 线程,几乎可以保证,构建代码以在计时器或事件上使用回调函数会比您当前的想法更好。

关于javascript - 如何在 Javascript 中锁定线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3565781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com