解決在循環中使用ajax異步時,數據的同步問題

var data = ['one','two','three','four','five','six','seven','eight'];

var defer = $.Deferred();
//這一步必須要寫,要不然下面的then無法使用
defer.resolve($("#showContent").append("這個裏面可以什麼都不寫<br/>"));


$.each(data,function(i,e){
  defer = defer.then(function () {
      return $.ajax({
        url:'/echo/json/',
      method:'get',
      beforeSend:function(){
        $("#showContent").append(e + "開始數數<br/>");
      },
      success:function(data){
          $("#showContent").append(e + "執行完成<br/>");
        //如果返回的結果有問題,這裏可以用return false退出循環
      }
    })
  });
});


defer.done(function(){
    $("#showContent").append("ajax全部執行完成<br/>")
});

 

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