jquery ajax beforesend 发送前等待
jquery ajax beforesend wait before sending
我正在尝试在 ajaxsetup beforesend 函数中使用 settimeout,但似乎发生的是 ajax 被发送并且在超时后调用等待函数。我想在超时期限内停止发送请求
jQuery.ajaxSetup({
beforeSend: function(){
setTimeout(continueExecution,1000)
return true;
}
});
有人可以建议我一种方法来阻止从 ajaxsetup
发送请求
你可以试试这个,将ajax请求放入setTimeout函数
setTimeout(function(){
//do the ajax request
}, 2000);
祝你好运!
beforeSend没有问题。原因是 setTimeout 是异步的。如果您尝试下面的代码,您会看到,但忙等待可能不是一个好主意。
jQuery.ajaxSetup({
beforeSend: function() {
var i = 0;
function testt() {
i++;
console.log(i);
if (i < 10000) {
testt();
}
}
testt();
return true;
}
});
您可以 return false 取消 ajax 请求并在 setTimeout 回调中创建新请求:
$.ajaxSetup({
beforeSend: function(jqXHR, options) {
setTimeout(function() {
// null beforeSend to prevent recursive ajax call
$.ajax($.extend(options, {beforeSend: $.noop}));
}, 5000);
return false;
}
});
我正在尝试在 ajaxsetup beforesend 函数中使用 settimeout,但似乎发生的是 ajax 被发送并且在超时后调用等待函数。我想在超时期限内停止发送请求
jQuery.ajaxSetup({
beforeSend: function(){
setTimeout(continueExecution,1000)
return true;
}
});
有人可以建议我一种方法来阻止从 ajaxsetup
发送请求你可以试试这个,将ajax请求放入setTimeout函数
setTimeout(function(){
//do the ajax request
}, 2000);
祝你好运!
beforeSend没有问题。原因是 setTimeout 是异步的。如果您尝试下面的代码,您会看到,但忙等待可能不是一个好主意。
jQuery.ajaxSetup({
beforeSend: function() {
var i = 0;
function testt() {
i++;
console.log(i);
if (i < 10000) {
testt();
}
}
testt();
return true;
}
});
您可以 return false 取消 ajax 请求并在 setTimeout 回调中创建新请求:
$.ajaxSetup({
beforeSend: function(jqXHR, options) {
setTimeout(function() {
// null beforeSend to prevent recursive ajax call
$.ajax($.extend(options, {beforeSend: $.noop}));
}, 5000);
return false;
}
});