滷蛋磨磨唧唧寫了一個禮拜沒弄好隔壁大神一兩句話點醒夢中人,寫的很差地方還望各位大神見諒,小的才學寫博客還請見諒。jquery
最後在說一句,根據業務需求選擇Ajax同步的解決方案 , 這不必定適合全部的同步。ajax
參考連接: http://www.jquery123.com/category/deferred-object/json
function getData(urls){ var logicalIdData = new Array(); var promises = []; for(var i = 0 ; i < urls.length ; i++){ promises.push($.ajax({type: "get", url: urls[i], data: "id=1",dataType:'json' })); } /** 一下代碼纔是重頭戲 **/ //這段代碼大體意思是 上面Ajax因此請求完成返回了 才執行下面的(延遲執行)。 $.when.apply(null, promises ).done(function() { //Ajax 請求完成後返回的狀態 , 還有數據。 不懂得能夠Js 調試下 。 for(var i = 0 ; i < arguments.length; i++){ if("success" == arguments[i][1]){ logicalIdData[i] = arguments[i][0]; } } //TODO 業務員代碼塊 return logicalIdData; // 實際筆者是咋這寫的業務邏輯的,不是返回。 }) }
以上給各位的是一種解決方案, 還有一種是 使用同步的方法編寫,可是同步的方案會讓瀏覽器有卡頓的狀況出現。promise