在使用ajax进行网络请求时,我们可以设置timeout来确定请求超时时间,在所设定的时间内如果还没有得到服务器的响应,那么请求就会览认为超时。当超时发生时,JQuery会调用error回调函数,我们可以在error的回调函数中进行超时的处理。
一个简单的示例:
$.ajax({
url: '/path/to/file',
type: 'GET',
dataType: 'json',
timeout: 5000, //5 seconds timeout
success: function(data, textStatus, xhr) {
console.log(data);
},
error: function(xhr, textStatus, errorThrown) {
if(textStatus==="timeout") {
console.log("request timeout");
//do something
} else {
console.log("other error: "+ errorThrown);
//do something
}
}
});
在上面的代码中,我们设置了timeout为5000毫秒(5秒),如果在5秒内服务器没有返回任何响应,那么JQuery的ajax方法就会调用error回调函数,并且传入的textStatus为”timeout“。我们可以检查这个textStatus来确定到底是超时还是其它的错误。

请注意:超时的检测并不是由服务器来完成的,而是由在客户端的代码来完成。服务器是没有办法知道客户端的超时设置的,所以服务器可能会继续处理那个已经在客户端超时的请求。如果服务端的处理特别耗时,你可能需要在服务端也进行超时的控制。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/169874.html