2013-05-27 58 views
0

每次循環迭代等待我有以下代碼:的JavaScript AJAX完成

$(".subform_book_uploading").each(function(index, subform) { 

      var bookId  = $(subform).find(".form_book").val(); 
      var filePath = $(subform).find(".form_file").val(); 

      //If values are not empty 
      if(bookId != 0 && filePath != 0) { 

       $.ajax({ 
        url: "my Url", 
        data: "my Data", 
        dataType: "json", 
        async: true, 
        success: function(data) { 
         Process response 

        } 
       }); 
      } 
     }); 

的問題是,它看起來像每次迭代等待AJAX​​完成。在「Firebug」中,我看到所有的ajax請求都是以串行方式執行的。有什麼辦法可以並行執行它們嗎?

回答

1

我的結論是,它實際上是以它應該的方式工作。它是順序執行的調試過程。

我建議使用fiddler而不是螢火蟲來觀察發生了什麼。當你中斷執行時,很明顯你會得到你已經完成的請求的響應,然後在斷點繼續並且發出下一個請求之前,你會得到以前的答覆。

試試小提琴手,讓我知道它是否相同。

0

$( 「subform_book_uploading」)。每個(函數(指數,窗體){

 var bookId  = $(subform).find(".form_book").val(); 
     var filePath = $(subform).find(".form_file").val(); 

     //If values are not empty 
     if(bookId != 0 && filePath != 0) { 

      setTimeout(function(){ $.ajax({ 
       url: "my Url", 
       data: "my Data", 
       dataType: "json", 
       async: true, 
       success: function(data) { 
        Process response 

       } 
      });},500); 
     } 
    });