有没有一种方法可以指定到服务器的ajax post的最大执行时间,这样如果服务器没有响应,那么继续尝试10秒,然后继续执行其余的代码??
Function doajaxPost(){
var returned_value="";
// #############I NEED THIS CODE TO TRY TO POST THE DATA TO THE SERVER AND KEEP
// #############TRYING FOR 10 SECONDS AND THEN CONTINUE WITH THE REST OF THE CODE.
jQuery.ajax({
url: 'ajaxhandler.php',
success: function (result) {
returned_value=result;
},
async: false
});
// ###################################################
alert(returned_value);
some other code
.
.
.
}发布于 2012-04-28 00:48:55
使用timeout
jQuery.ajax({
url: 'ajaxhandler.php',
success: function (result) {
returned_value=result;
},
timeout: 10000,
async: false
});但是,alert(returned_value);将在您的调用之后立即执行(不会等待调用完成)。
发布于 2012-04-28 00:48:54
JQuery接口文档介绍了如何设置超时。
http://api.jquery.com/jQuery.ajax/
虽然这里的其他答案是正确的,但学习自己检查文档比只知道这个答案更有价值。
发布于 2012-04-28 00:48:11
您可以为ajax请求设置超时值。
timeout
设置请求的超时时间(毫秒)。这将覆盖使用$.ajaxSetup()设置的任何全局超时。超时时间从发出$.ajax调用时开始;如果其他几个请求正在进行,并且浏览器没有可用的连接,则请求有可能在发送之前超时。在jQuery 1.4.x及更低版本中,如果请求超时,XMLHttpRequest对象将处于无效状态;访问任何对象成员都可能抛出异常。仅在Firefox中,脚本和3.0+请求不能通过超时取消;即使脚本在超时后到达,它也会运行。
下面是一个示例:
$.ajax({
url: "ajaxhandler.php",
...
timeout: 10000,
...
});https://stackoverflow.com/questions/10354685
复制相似问题