gpt4 book ai didi

ajax同步调用超时

转载 作者:行者123 更新时间:2023-12-04 21:26:43 30 4
gpt4 key购买 nike

ajax 新手,所以问一个非常基本的问题。

-- 有没有办法在设置超时的情况下进行同步 ajax 调用 (async:false)。

http://www.ajaxtoolbox.com/request/

尽管在我的应用程序中,超时与异步调用完美配合,
但是对于一个特定的场景,我需要一个同步调用(javascript 实际上应该等到它收到服务器的回复),这也可以正常工作。但是我需要处理服务器可能需要很长时间并且可能会调用 ajax 超时的情况。

我可以引用其他关于ajax的标准文档吗?

谢谢

最佳答案

基本上,在同步ajax请求期间,浏览器被阻塞并且浏览器被阻塞时无法执行任何javascript。因此,jQuery 无法在设置的超时后中止 ajax 请求,因为 jQuery 是 javascript,并且在浏览器被阻止时无法执行 javascript。这是同步 ajax 的主要缺陷。

任何时候你可能想要一个同步请求,你应该使用异步请求,然后在回调中发生什么,如下所示;

$.ajax({
url : 'webservices.php',
timeout: 200,
dataType : 'json',
data : {
'cmd' : 'ping',
},
success : function(data, textStatus) {
$.ajax({
url : 'webservices.php',
async: false,
dataType : 'json',
data : {
'cmd' : 'feedback',
'data' : data,
'userinfo' : window.dsuser
},
success : function(data, textStatus) {
// success!
Status("Thanks for the feedback, "
+ window.dsuser.user + "!");
}
});
},
error : function(jqhdr, textStatus,
errorThrown) {
Status("There was trouble sending your feedback. Please try again later");
}
});

关于ajax同步调用超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2195259/

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