Javascript jquery ajax发送前等待发送
我试图在ajaxsetup beforesend函数中使用settimeout,但似乎发生的是发送ajax,并在超时后调用wait函数。我想在超时期间停止发送请求Javascript jquery ajax发送前等待发送,javascript,jquery,ajax,timeout,Javascript,Jquery,Ajax,Timeout,我试图在ajaxsetup beforesend函数中使用settimeout,但似乎发生的是发送ajax,并在超时后调用wait函数。我想在超时期间停止发送请求 jQuery.ajaxSetup({ beforeSend: function(){ setTimeout(continueExecution,1000) return true; } }); 有人能给我建议一种方法来阻止从ajaxsetup发送请求吗?你可以试试,将ajax请求放入
jQuery.ajaxSetup({
beforeSend: function(){
setTimeout(continueExecution,1000)
return true;
}
});
有人能给我建议一种方法来阻止从ajaxsetup发送请求吗?你可以试试,将ajax请求放入setTimout函数
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;
}
jQuery.ajaxSetup({
beforeSend:function(){
var i=0;
函数testt(){
i++;
控制台日志(i);
如果(i<10000){
testt();
}
}
testt();
返回true;
}
})) 您可以返回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;
}
});
“Description:为将来的Ajax请求设置默认值。不建议使用它。”我只是想通知您为什么您希望在请求之前有一个延迟,如果您发布您的实际原因,可能会有更好的解决方案。感谢您的帮助,它很有效,有两个问题是a)如果我删除了console.log,那么请求会立即发送b)它会阻塞ui,但不是按照我想要的方式工作。你有解决这些问题的办法吗?我想jcubic的答案会满足你的需要。你试过了吗?我没有更好的解决方案。非常感谢,它可以工作,唯一的问题是当我添加时。为ajax请求完成后,它不工作,但我可以不用它