gpt4 book ai didi

JQuery-AJAX : No further request after timeout and delay in form post

转载 作者:行者123 更新时间:2023-12-01 04:30:32 24 4
gpt4 key购买 nike

我得到了一个包含多个复选框的表单。该表单应发送到服务器以从服务器端脚本接收适当的结果。

这已经可以工作了。

我现在要实现的目标:

1)实现超时:这已经可以工作了,但是一旦发生超时,新的请求就不再工作了。

2) 在请求结果中实现延迟:应实现延迟,以便并非每个复选框都会导致 POST 请求。

这就是我现在拥有的:

function update_listing() {

// remove postings from table
$('.tbl tbody').children('tr').remove();

// get the results through AJAX
$.ajax({
type: "POST",
url: "http://localhost/hr/index.php/listing/ajax_csv",
data: $("#listing_form").serialize(),
timeout: 5000,
success: function(data) {
$(".tbl tbody").append(data);
},
error: function(objAJAXRequest, strError) {
$(".tbl tbody").append("<tr><td>failed " + strError + "</td></tr>");
}
});

return true;

}

结果目前作为 HTML 表格行传递 - 我将在下一步中将它们转换为 CSV/JSON。

非常感谢您的建议。

最佳答案

对于延迟:

(function () {

var timeout;

function update_listing() {

// remove postings from table
clearTimeout(timeout);
timeout = setTimeout(function () {

$('.tbl tbody').children('tr').remove();

// get the results through AJAX
$.ajax({
type: "POST",
url: "http://localhost/hr/index.php/listing/ajax_csv",
data: $("#listing_form").serialize(),
timeout: 5000,
success: function(data) {
$(".tbl tbody").append(data);
},
error: function(objAJAXRequest, strError) {
$(".tbl tbody").append("<tr><td>failed " + strError + "</td></tr>");
}
});

}, 1000); // 1 second?

return true;

}
}());

这将等待一秒钟,直到发出 AJAX 请求。 “一旦发生超时,新的请求就不再有效”是什么意思。如果您想在失败时触发另一个请求,只需再次调用 update_list() (但请注意,1 秒的延迟将生效)。

关于JQuery-AJAX : No further request after timeout and delay in form post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2960302/

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