【JavaScript】Ajax 同步解決方案。

滷蛋磨磨唧唧寫了一個禮拜沒弄好隔壁大神一兩句話點醒夢中人,寫的很差地方還望各位大神見諒,小的才學寫博客還請見諒。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

相關文章
相關標籤/搜索