嵌套的 ajax 請求


今天看到了一個嵌套的ajax,算是長見識了。

不過看一眼就知道怎么回事了。

不是不會,就怕想不到。

 1 //發送一個ajax請求,嵌套的ajax請求
 2 'ajaxCall': function(url1, data1, url2, data2){
 3     var returnValue = '';
 4     $.ajax({
 5         type: "POST",
 6         url: url1,
 7         async: false,
 8         data: data1,
 9         success: function(data3) {
10             //TODO
11             //外層ajax響應成功,就再次發送ajax請求到第二個地址
12             $.ajax({
13                 type: "POST",
14                 url: url2,
15                 data: data2,
16                 async: false,
17                 success: function(data4) {
18                     //TODO,對returnValue進行賦值
19                 }
20             });
21         }
22     });
23     return returnValue;
24 }

注:

    外層的 AJAX 和內層的 AJAX 的 async 屬性都要設置為 false, 如果不這樣的話, 兩次請求都是異步的, 可能會導致數據獲取不到, 但是也有一個弊端, 因為同步, 在異步請求時, 瀏覽器是鎖死狀態, 不能進行其他的操作.

附上一個 AJAX 的參數詳解博客鏈接 [ AJAX 參數詳解 ]

ps:

今天在看 jQuery1.5時,看到了這個$.when(), 使用這個就能解決上面的瀏覽器鎖死狀態.

放上兩個鏈接:

var ajax1= $.ajax({
                     url: url1,
                     data: data1
                    });
 var ajax2= $.ajax({
                     url: url2',
                     data: data
                    });    
var ajax3= $.ajax({
                     url: url3,
                     data: data
                    });        
 $.when(ajax1,ajax2,ajax3)
      .done(function(data, textStatus, jqXHR){
                   //TODO
           })
       .fail(function(data, textStatus, jqXHR){
                 //TODO
            });


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM