jQuery是一個非常流行的JavaScript庫,它簡化了DOM操作和事件處理等任務。jQuery的強大之處在于它的插件,其中之一是jQuery Ajax,即可以通過Ajax從服務器獲取數據并將其顯示在頁面上。但是,當多個Ajax請求同時發送到服務器時,就會產生一個并發的問題。
如果您有多個Ajax請求,并且它們的返回數據無法單獨處理,那么您可以使用jQuery.when。 jQuery.when用于等待多個異步操作完成。以下是一個例子:
$.when($.ajax("url1"), $.ajax("url2"), $.ajax("url3")) .done(function (data1, data2, data3) { // 處理數據 });
在這個例子中,三個Ajax請求url1、url2和url3將同時發送。當所有請求都成功時,它們的響應數據(data1、data2和data3)將傳遞給.done回調函數,然后你可以處理這些數據。
您還可以使用jQuery.Deferred對象,將多個異步請求合并在一起,然后在所有請求完成時處理它們:
var deferreds = []; for (var i = 0; i< 10; i++) { deferreds.push($.ajax("url" + i)); } $.when.apply($, deferreds) .done(function () { // 處理響應數據 });
在這個例子中,我們使用一個循環來構建一個包含10個Ajax請求的數組。然后,我們將數組傳遞給jQuery.when函數,并使用.apply方法將數組作為參數展開。
需要注意的是,jQuery對瀏覽器發起的Ajax請求數量有限制,一般只能同時發起2-8個請求。因此,當您遇到大量Ajax請求時,最好將它們分階段發起。