ajax的嵌套請求案例源碼

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

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

不是不會,就怕想不到。

//發送一個ajax請求,嵌套的ajax請求
'ajaxCall': function(url1, data1, url2, data2){
    var returnValue = '';
    $.ajax({
        type: "POST",
        url: url1,
        async: false,
        data: data1,
        success: function(data3) {
            //TODO
            //外層ajax響應成功,就再次發送ajax請求到第二個地址
            $.ajax({
                type: "POST",
                url: url2,
                data: data2,
                async: false,
                success: function(data4) {
                    //TODO,對returnValue進行賦值
                }
            });
        }
    });
    return returnValue;
}

注: 外層的 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
            });

複製代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章