Jquery 防止AJAX调用超时
我的一个网站需要调用我的另一个网站的API 我计划在页面进行AJAX调用以引导服务器端代码进行API调用时显示一个“wait”弹出窗口 但这可能需要一段时间。我正在寻找关于如何防止AJAX调用超时的建议 当我在谷歌上搜索这个问题时,我读过的大多数文章都建议一次只发送几个项目。但就我而言,这一切都是在一个相当重要的电话中完成的Jquery 防止AJAX调用超时,jquery,asp.net,ajax,asp.net-web-api,Jquery,Asp.net,Ajax,Asp.net Web Api,我的一个网站需要调用我的另一个网站的API 我计划在页面进行AJAX调用以引导服务器端代码进行API调用时显示一个“wait”弹出窗口 但这可能需要一段时间。我正在寻找关于如何防止AJAX调用超时的建议 当我在谷歌上搜索这个问题时,我读过的大多数文章都建议一次只发送几个项目。但就我而言,这一切都是在一个相当重要的电话中完成的 还有哪些其他选项可以防止页面超时?如果您无法在数据包等中实现加载,那么超时可能是您最好的选择 $.ajax({ dataType: "json",
还有哪些其他选项可以防止页面超时?如果您无法在数据包等中实现加载,那么超时可能是您最好的选择
$.ajax({
dataType: "json",
url: uriTrackers, // Your URL here.
//data: data, //we are not sending data, this is a different data to the one below
timeout: 10000 //10 second timeout or maybe 30 secs if debugging
})
.done(function (data) {
// Anything you want to do on success here.
})
.fail(function (jqXHR, textStatus, err) {
$('#TrackerInfo').text('Error: ' + err + uriTrackers);
});
根据这些评论,我知道您需要在特定的时间间隔内保持服务器ping
setInterval(function() {
$.ajax({url: "ping.txt",
success: function(result){
//Nothing to do, or your can check the content of your ping.txt
},
error : function(){
//Code to show your wait popup
}
});
}, 60000);
这将使您的连接保持活动状态,即您将知道是否已连接到服务器
您需要在服务器上相应地放置ping.txt。是否尝试了超时参数?您可以指定超时值,如超时值为3时的
timeout:3000
seconds@PM.当前位置我没有,但对此感到奇怪。如果在服务器忙时无法设置某种“ping”,那么这可能是一种很好的回退方法。您的意思是,在进行ajax调用之前,您想检查服务器是否忙,如果忙,则显示等待弹出窗口,如果不忙,则进行ajax调用?@PM.:否,我只是想知道,在服务器进行API调用时,是否有某种方法可以周期性地ping服务器。换句话说,要想在工作完成时找到一些来回通信的方法,就像我一次只发送几个项目一样。为了保持连接的活力,你可以在某个特定的时间间隔调用一些无关紧要的API,但在同一个请求中发送几个项目会很困难,显然不是一个好的解决方案。您可以为这些特定任务单独调用,并随时保留ping服务器的一个调用。谢谢,但我不确定这是否满足需要。我假设服务器仍然存在,并且无论发生什么情况都可以ping。这里的问题是,执行实际工作的AJAX调用可能会超时,我不知道这会如何改变这一点。哦,好吧,那么我想timeout参数会解决这个问题。