gpt4 book ai didi

javascript - jQuery 每秒调用 ajax 直到调用完成/返回 true

转载 作者:行者123 更新时间:2023-12-02 19:14:44 25 4
gpt4 key购买 nike

我需要能够每秒调用一个函数getProgress。该函数执行 ajax 请求并更新进度条。当从 ajax 返回的调用为“true”时,我需要能够停止对此函数的调用。

HTML:

<td class="checkbox">
<input type="checkbox" value="6" class="checkbox download" id="chk-6">
<div class="hide" id="prgbar-6"><span class="progresslabel"></span></div>
</td>

我的功能:

function getProgress(operationId) { // receives operationId
$.post("@Url.Action("Status","Packages")", { operationId: operationId }, function (data) {
if (data) {
for (var key in data) {
if ($("#prgbar-" + key + "").size() != 0) {
var objPrg = $("#prgbar-" + key + "");
var objchk = $("#chk-" + key + "");
if (data[key]) {
objPrg.find("span").text("downloading...").css("color:#000000");
objchk.hide();
objPrg.removeClass("hide").show().progressbar({
value: 0
});
var value = Math.floor(parseInt(data[key]) * 100);
objPrg.progressbar("option", "value", value);
objPrg.find("span").text(value + "%");
} else {

}
}
}
}
});
}

最佳答案

var interval = setInterval(function(){getProgress(operationId,interval)},1000);

在您的 $.POST 完成回调函数中,清除此间隔:{我在这里使用完成,但如果您只想为成功的请求执行此操作,请使用 .success()}

$.post("@Url.Action("Status","Packages")", { operationId: operationId }, function (data) {
if (data) {
for (var key in data) {
if ($("#prgbar-" + key + "").size() != 0) {
var objPrg = $("#prgbar-" + key + "");
var objchk = $("#chk-" + key + "");
if (data[key]) {
objPrg.find("span").text("downloading...").css("color:#000000");
objchk.hide();
objPrg.removeClass("hide").show().progressbar({
value: 0
});
var value = Math.floor(parseInt(data[key]) * 100);
objPrg.progressbar("option", "value", value);
objPrg.find("span").text(value + "%");
} else {

}
}
}
}
}).complete(function() { clearInterval(interval); });

关于javascript - jQuery 每秒调用 ajax 直到调用完成/返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13267565/

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