Вот несколько примеров, которые демонстрируют установку и обнаружение тайм-аутов в старой и новой парадигмах 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 </strong>
$.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, errorThrown)
Функция, вызываемая, если
запрос не выполнен Функция получает три аргумента: JQXHR (в
jQuery 1.4.x, XMLHttpRequest), строка, описывающая тип
произошла ошибка и необязательный объект исключения, если таковой возник.
Возможные значения для второго аргумента (кроме нуля): «время ожидания»,
«error», «abort» и «parsererror». Когда происходит ошибка HTTP,
errorThrown получает текстовую часть статуса HTTP, такую как
«Не найдено» или «Внутренняя ошибка сервера». Начиная с jQuery 1.5 ошибка
Установка может принимать массив функций. Каждая функция будет вызвана
в очереди. Примечание. Этот обработчик не вызывается для междоменного сценария и
Запросы JSONP.
Источник: http://api.jquery.com/jQuery.ajax/