2016-05-07 41 views
0

我是jquery和Ajax的新手,我有以下問題。是否可以同時發生多個Ajax請求?

是否允許多個Ajax請求?我使用PHP,我想通過jQuery 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中的A又代表什麼? –

回答

4

是的,你可以同時有多個Ajax請求。

瀏覽器限制您可以對單個域同時發出多少個請求,因此每個瀏覽器都有不同的限制。大多數瀏覽器將最大併發請求數限制爲6.(http://www.browserscope.org/?category=network

編輯 - 對於您的輸出,您看到了什麼時間戳?這可能是服務器端問題嗎?例如。您正在使用一次只處理單個ajax請求的單線程(dev)服務器?

也可以放棄Ajax請求,所以如果你需要取消現有的請求,你可以這樣做。這篇文章有更多的細節:Abort Ajax requests using jQuery

+0

非常感謝你克里斯! –

+0

引用鏈接是非常寶貴的資源,謝謝。 –

0

你可以並行做ajax。這是所有的目的。

但是,您不應該嘗試「將瀏覽器重定向到另一個頁面」並回應ajax調用。您將數據返回給JavaScript,並對其執行操作。

相關問題