1 回答
TA贡献1827条经验 获得超7个赞
如果你想阻止用户发出多个并行请求,你可以设置一个标志,如果请求已经在进行中,该标志将导致功能代码无法执行。
例如,看看requestInProgress这个例子中的标志:
var requestInProgress = false;
function checkItemd(item_id) {
if (requestInProgress == true) return false;
$("#checkBtn"+item_id).html("Processing..(Wait)").removeClass("btn-success").addClass("btn-primary");
alert("One tool checked at a time - Click OK");
var payload_string = $("#payload_form").serialize();
requestInProgress = true;
$.ajax({
type:"POST",
url:"ajax-item-check",
data:payload_string + "&itemId=" + item_id,
dataType:"json",
success:function(result){
requestInProgress = false;
if (result.result=="success") {
if (result.works=="success") {
var checkBtnMessage = result.response ? result.response : "'Sent to ' Email ";
$("#checkBtn"+item_id).html(checkBtnMessage).removeClass("btn-primary").addClass("btn-success");
}else{
$("#checkBtn"+item_id).html("Error").removeClass("btn-primary").addClass("btn-danger");
setTimeout('removeRow('+item_id+');',1000);
}
}else{
$("#checkBtn"+item_id).html("Not available to sellers").removeClass("btn-primary").addClass("btn-warning");
}
}
});
}
注意,您可能需要添加一个“错误”回调,以便在请求出现任何意外问题时可以再次将标志设置为 false。否则,用户必须刷新页面才能再次发出请求。
- 1 回答
- 0 关注
- 133 浏览
添加回答
举报