Как установить максимальное время выполнения для AJAX post с помощью jQuery?
есть ли способ указать максимальное время выполнения сообщения ajax на сервере, поэтому, если сервер не отвечает, продолжайте пытаться в течение 10 секунд, а затем продолжайте с остальной частью кода??
Function doajaxPost(){
var returned_value="";
// #############I NEED THIS CODE TO TRY TO POST THE DATA TO THE SERVER AND KEEP
// #############TRYING FOR 10 SECONDS AND THEN CONTINUE WITH THE REST OF THE CODE.
jQuery.ajax({
url: 'ajaxhandler.php',
success: function (result) {
returned_value=result;
},
async: false
});
// ###################################################
alert(returned_value);
some other code
.
.
.
}
4 ответов
использовать timeout
:
jQuery.ajax({
url: 'ajaxhandler.php',
success: function (result) {
returned_value=result;
},
timeout: 10000,
async: false
});
, alert(returned_value);
будет выполняться сразу после вашего вызова (не будет ждать завершения вызова).документация API jQuery сообщает, как установить "тайм-аут".
http://api.jquery.com/jQuery.ajax/
в то время как другие ответы здесь верны, научиться проверять документацию для себя более ценно, чем знать только этот ответ.
вы можете установить значение тайм-аута для вашего запроса ajax.
установить тайм-аут (в миллисекундах) для запроса. Это переопределит любой глобальный тайм-аут с $.метода ajaxsetup(). Начинается период ожидания в точке $.ajax вызов сделан; если несколько других запросов находятся в прогресс и браузер не имеет доступных подключений, это возможно на запрос времени, прежде чем он может быть отправлен. В jQuery 1.4.x и ниже XMLHttpRequest объект будет в недопустимом состоянии, если время ожидания запроса; доступ к любым членам объекта может вызвать исключение. Только в Firefox 3.0+ запросы script и JSONP не могут быть отменено таймаутом; скрипт будет работать, даже если он прибудет после таймаут.
вот пример:
$.ajax({
url: "ajaxhandler.php",
...
timeout: 10000,
...
});
установить тайм-аут (в миллисекундах) для запроса. Это переопределит любой глобальный тайм-аут, установленный с помощью $.метода ajaxsetup(). Период ожидания начинается с точки $.вызов ajax выполняется; если выполняется несколько других запросов и браузер не имеет доступных подключений, возможно время ожидания запроса до его отправки. В jQuery 1.4.x и ниже объект XMLHttpRequest будет находиться в недопустимом состоянии, если истечет время ожидания запроса; доступ к любым членам объекта может вызвать исключение. Только в Firefox 3.0+ запросы script и JSONP не могут быть отменены таймаутом; скрипт будет работать, даже если он прибывает после периода таймаута.