提问人:Gurudas k s 提问时间:6/29/2022 最后编辑:Gurudas k s 更新时间:6/30/2022 访问量:227
如何在jquery中连续调用Ajax请求,直到我们收到响应
How to call Ajax request continuously in jquery until we receive the response
问:
我的服务中发生了一个ajax调用,需要更多时间来满足请求。但最后,如果我检查日志,这个请求会在 2 分钟内成功。
现在的问题是现代浏览器等待此请求的时间不会超过 1 分钟。如果请求未在一分钟内完成,则失败并显示 HTTP 错误 504。
使用下面的代码,我正在尝试连续调用ajax调用。但这每次都会创建一个新请求。我的要求是我应该连续调用这个 ajax 请求,直到我得到它的响应。同样使用下面的代码,它总是调用 ajax 请求。不知道如何阻止它。
function fetchdata(){
$.ajax({
url: 'fetch_details.php',
type: 'post',
success: function(data){
// Perform operation on return value
alert(data);
},
complete:function(data){
setTimeout(fetchdata,5000);
}
});
}
$(document).ready(function(){
setTimeout(fetchdata,5000);
});
答:
0赞
Rantouan Achmet
6/30/2022
#1
从我的角度来看,如果请求花费的时间超过平均时间,您无法控制客户端何时丢弃请求,因为您不知道中间有什么(防火墙也会切断此类请求)。
不过,如果您的服务器端脚本正在处理复杂的数据并且您需要几分钟,那么明智的做法是适应新标准并发出 3 种类型的请求:
- 一个用于调用处理数据的脚本,
- 一个每 X 秒询问一次数据是否被处理,并且
- 一旦数据被处理,它就会停止检查循环并获取结果。
评论