2013-12-10 4 views
3

Я пытаюсь запустить некоторые запросы на php с помощью ajax. Мне не нужен ответ от них и хотелось бы убить запрос ajax сразу после его отправки. таким образом я могу запускать больше вызовов ajax, не нажимая ограничение на 6 ajax. У меня есть googled это, и ни один из вариантов, похоже, не работает.jquery ajax fire and forget

Я попытался использовать команду .abort(), но он убьет запрос до того, как он достигнет php.

Какой лучший способ сделать это?

В основном я хочу запустить этот код и получить ответ ajax либо немедленно вернуться, либо убить его, а функция php на другом конце продолжает обрабатываться.

$.ajax({ 
    type: "GET", 
    url: "api/v1/restart/" + val, 
    success: function(xhr) { 
    } 
}); 

Мне не нужен ответ назад, я просто хочу, чтобы это начало функции php.

+0

вопрос не имеет большого смысла, поскольку он написан. Пожалуйста, покажите свои попытки кода вместе с расширенными объяснениями. – charlietfl

+0

Возможно, загляните в [WebSockets] (https://developer.mozilla.org/en-US/docs/WebSockets)? –

+0

В настоящее время я использую websockets для возврата данных из моей php-функции. Мне нужно что-то, чтобы начать вызов api на клик, поэтому я использую ajax. – arrowill12

ответ

0

Добавьте это в список параметров вызова ajax. Также сделайте свой запрос php Асинхронный

async: true 
3

Пример: Запросить страницу test.php, но игнорировать результаты возврата.

$.get("api/v1/restart/" + val); 

Пример: Запросить страницу test.php, но игнорировать результаты возврата, так просто!

http://api.jquery.com/jQuery.get/

и если вы хотите, чтобы обойти максимальное вызовы ограничивают просто использовать .queue()

http://learn.jquery.com/effects/uses-of-queue-and-dequeue/

+0

Можете ли вы привести пример того, как можно использовать эту очередь? thta - это именно моя проблема. Я ограничена 6, поэтому мне бы хотелось, чтобы ajax вернулся, чтобы другой мог начать. – arrowill12

+0

, если вы найдете мой ответ правильно, отметьте его как правильный ответ, ty – ProllyGeek

0

только, чтобы сделать ответ очереди ясно, причиной его размещения в комментариях не будет ясно:

// jQuery на пустом объекте, мы собираемся использовать его в качестве нашей очереди

var ajaxQueue = $({}); 



$.ajaxQueue = function(ajaxOpts) { 
    // Hold the original complete function. 
    var oldComplete = ajaxOpts.complete; 

    // Queue our ajax request. 
    ajaxQueue.queue(function(next) { 
     // Create a complete callback to fire the next event in the queue. 
     ajaxOpts.complete = function() { 
      // Fire the original complete if it was there. 
      if (oldComplete) { 
       oldComplete.apply(this, arguments); 
      } 
      // Run the next query in the queue. 
      next(); 
     }; 

     // Run the query. 
     $.ajax(ajaxOpts); 
    }); 
}; 
Смежные вопросы