Обратите внимание, что время ожидания исчисляется миллисекундами. Поэтому, если вы хотите запустить обработчик ошибок, присвойте max_value 2000 рядом!
jQuery <= 1.7.2 </strong>
var start_time = new Date().getTime();
var req_time, max_time;
max_time = 2000; // Please update the max_time
$.ajax({
type: 'get',
url: 'mypage/myfunction',
dataType: 'json',
async: true,
timeout: max_time,
success: function(res) {
req_time = new Date().getTime() - start_time; // 2106 miliseconds
console.log('success!', res, req_time);
},
error: function(err, txtStatus) {
console.log('error!', err, txtStatus); // doesn't get triggered even though req_time > max_time
if(textStatus === 'timeout')
{
alert('Failed from timeout');
//do something. Try again perhaps?
}
},
complete: function() {
req_time = new Date().getTime() - start_time; // 2107 miliseconds
console.log('complete', req_time);
}
});
jQuery 1,8 +
var start_time = new Date().getTime();
var req_time, max_time;
max_time = 2000; // Please update the max_time
$.ajax({
type: 'get',
url: 'mypage/myfunction',
dataType: 'json',
async: true,
timeout: max_time,
}).done(function(){
//do something
}).fail(function(jqXHR, textStatus){
if(textStatus === 'timeout')
{
alert('Failed from timeout');
//do something. Try again perhaps?
}
});