Функция jQuery.ajax - это то, что вам нужно. Это дает вам доступ к довольно большому набору параметров для выполнения вызовов AJAX.
В частности, вы хотите сделать звонок, аналогичный
$.ajax({'complete': callbackFunction, 'url': 'foo/bar/', 'timeout': 5000, 'error': errorCallback});
Вам интересны два варианта: timeout
и error
. Вся документация для функции здесь . Это немного сложнее, чем использование более стандартных функций get
/ post
, но гораздо более гибкий.
Функция error
очень похожа на стандартный обратный вызов, который вы используете с любым запросом jQuery AJAX. Если обратный вызов вызывается в случае успешного выполнения запроса, функция ошибки вызывается в случае сбоя (например, 404 ошибки или при превышении времени ожидания). Вы использовали бы функцию ошибки, чтобы отобразить ваше сообщение пользователю, что его запрос истек. Полная документация по аргументам функции (которую, на самом деле, вам, вероятно, не понадобится) доступна на странице документа $ .ajax (ссылка ранее).
В качестве альтернативы , вы можете установить тайм-аут глобально для каждого вызова AJAX с помощью функции jQuery.ajaxSetup. Его аргументы в точности совпадают с аргументами функции jQuery.ajax, поэтому вы должны сделать что-то вроде этого:
$.ajaxSetup({'timeout': 5000, 'error': errorCallback});
Достоинством является то, что вы можете продолжать использовать jQuery.get
/ jQuery.post
, но недостатком является то, что вам нужно проделать дополнительную работу, чтобы сделать вызовы AJAX без тайм-аута.