2015-05-08 11 views
2

Я пытаюсь использовать setimeout в функции ajaxsetup beforesend, но, похоже, происходит передача ajax и функция ожидания вызывается после таймаута. Я хочу, чтобы остановить запросы отправлять на период тайм-аутаjquery ajax beforesend wait перед отправкой

jQuery.ajaxSetup({ 
    beforeSend: function(){ 
     setTimeout(continueExecution,1000) 

     return true; 
    } 
}); 

Может кто-то предложить мне способ, чтобы остановить выполнение запросов отправлено из ajaxsetup

+0

«Описание:. Установите значения по умолчанию для будущих запросов Ajax Его использование не рекомендуется.» Просто хочу сообщить вам –

+0

, почему вы хотите иметь задержку перед запросом, может быть лучшее решение, если вы опубликуете свою фактическую причину. – Jag

ответ

3

Вы можете вернуть ложь, чтобы отменить запрос AJAX и создать новый в SetTimeout обратного вызова:

$.ajaxSetup({ 
    beforeSend: function(jqXHR, options) { 
     setTimeout(function() { 
      // null beforeSend to prevent recursive ajax call 
      $.ajax($.extend(options, {beforeSend: $.noop})); 
     }, 5000); 
     return false; 
    } 
}); 
+0

Большое спасибо, это работает, только проблема заключается в том, что я добавляю .done для запроса ajax, он не работает, но я могу обойтись без него – user1865928

+0

Не работайте для меня. –

0

вы можете попробовать это, поставить запрос AJAX в функции setTimout

setTimeout(function(){ 
    //do the ajax request 
}, 2000); 

удачи!

0

Нет проблем с beforeSend. Причина setTimeout - асинхронная. Если вы попробуете код ниже, вы увидите это, но ожидание может не быть хорошей идеей.

jQuery.ajaxSetup({ 
beforeSend: function() { 
    var i = 0; 

    function testt() { 
     i++; 
     console.log(i); 
     if (i < 10000) { 
      testt(); 
     } 
    } 
    testt(); 
    return true; 
} 

});

+0

Спасибо, что помогли мне, это работает, две проблемы: a) если я удалю console.log, тогда запросы будут отправлены сразу. B) он блокирует ui, но не работает, работает только так, как я хочу. У вас есть какие-либо проблемы с этими проблемами? – user1865928

+0

Я думаю, ответ jcubic удовлетворит ваши потребности. Вы попробовали? У меня нет лучшего решения. – aldebaran

+0

aldebaran Еще раз спасибо за помощь – user1865928

Смежные вопросы