下面是一些示例,演示在jQuery的旧的和新的范例中设置和检测超时。
承诺使用jQuery 1.8+Promise.resolve(
$.ajax({
url: '/getData',
timeout:3000 //3 second timeout
})).then(function(){
//do something}).catch(function(e) {
if(e.statusText == 'timeout')
{
alert('Native Promise: Failed from timeout');
//do something. Try again perhaps?
}});
jQuery 1.8+$.ajax({
url: '/getData',
timeout:3000 //3 second timeout}).done(function(){
//do something}).fail(function(jqXHR, textStatus){
if(textStatus === 'timeout')
{
alert('Failed from timeout');
//do something. Try again perhaps?
}});
jQuery<=1.7.2$.ajax({
url: '/getData',
error: function(jqXHR, textStatus){
if(textStatus === 'timeout')
{
alert('Failed from timeout');
//do something. Try again perhaps?
}
},
success: function(){
//do something
},
timeout:3000 //3 second timeout});
注意,textStatus帕拉姆(或jqXHR.statusText会让你知道错误是什么。如果您想知道故障是由超时引起的,这可能很有用。错误(jqXHR,textStatus,ErrorThond)
如果请求失败将被调用的函数。函数接收三个参数:jqXHR(在jQuery1.4.x中,XMLHttpRequest中)对象、描述所发生错误类型的字符串和一个可选的异常对象(如果发生的话)。第二个参数(除了NULL)可能的值是“超时值”、“错误”、“中止”和“ParserError”。当发生HTTP错误时,ErrorThond将接收HTTP状态的文本部分,例如“Notfind”或“InternalServer Error”。从jQuery1.5开始,错误设置可以接受一个函数数组。每个函数将依次调用。注意:对于跨域脚本和JSONP请求,不需要调用此处理程序。