2016-05-07 3 views
0

Я новичок в jquery и Ajax, и у меня есть следующий вопрос.Возможно несколько одновременных запросов Ajax?

Разрешены ли несколько запросов Ajax? Я использую PHP, и я бы хотел, чтобы форма представляла через jquery Ajax и в то же время запускала еще один запрос Ajax, который выполнил бы другую задачу. Все это без участия пользователя, ожидающего завершения каждого запроса.

Возможно ли это?

Спасибо за помощь, ребята!

* Редактировать * Я пробовал, но если я пытаюсь перенаправить браузер на другую страницу не ждет, пока AJAX завершается, прежде чем перейти.

это код для моего теста.

/* populate subcategory dropdown based on category select */ 
$('#categoria-selector').change(function (e) { 
    var cat = $("#categoria-selector option:selected").text(); 
    alert(cat); 

    $.ajax({ 
     type: "POST", 
     url: baseurl + 'precios/test', 
     success: function (data, status, xhr) { 
      alert('second alert'); 
     } 
    }); 

    $.ajax({ 
       type: "POST", 
       url: baseurl + 'precios/test2', 
       success: function (data, status, xhr) { 
        alert('third alert'); 
       } 
      }); 
}); 

На мой контроллер у меня есть следующие функции

function test() { 
     //sleep for 5 seconds 
     $first = date('Y-m-d H:m:s'); 
     sleep(10); 
     $second = date('Y-m-d H:m:s'); 
//start again 
     $_SESSION['mivar'] = 'Started at ' . $first . ' and ended at ' . $second; 
    } 

    function test2() { 
     //sleep for 5 seconds 
     $first = date('Y-m-d H:m:s'); 
     sleep(30); 
     $second = date('Y-m-d H:m:s'); 
//start again 
     $_SESSION['mivar2'] = 'Started at ' . $first . ' and ended at ' . $second; 
    } 
+2

да, возможно. попробуйте. –

+0

Вот почему у нас есть ajax. – TheDrot

+0

Что еще стоит в Ajax? –

ответ

4

Да, вы можете иметь несколько одновременных запросов AJAX.

Браузер ограничивает количество одновременных запросов, которые вы можете сделать в одном домене, поэтому каждый браузер имеет другой предел. Большинство браузеров ограничивают максимальное количество одновременных запросов до 6. (http://www.browserscope.org/?category=network)

Редактировать - Для вашего вывода какие временные метки вы видите? Возможно ли, что это проблема на стороне сервера? например. вы используете однопоточный (dev) сервер, который обрабатывает только один запрос ajax за раз?

Также можно прервать запросы ajax, поэтому, если вам нужно отменить существующий, вы можете это сделать. Этот пост имеет более подробную информацию: Abort Ajax requests using jQuery

+0

Большое спасибо Крису! –

+0

Ссылка на ссылку - очень ценный ресурс, спасибо. –

0

Вы можете делать ajax параллельно. Это цель всего этого.

Но вы не должны пытаться «перенаправить браузер на другую страницу» с ответом на вызов ajax. Вы возвращаете данные в javascript, и он действует на него.

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