【JavaScript】Ajax 同步解决方案。

卤蛋磨磨唧唧写了一个礼拜没弄好隔壁大神一两句话点醒梦中人,写的不好地方还望各位大神见谅,小的才学写博客还请见谅。

最后在说一句,根据业务需求选择Ajax同步的解决方案 , 这不一定适合所有的同步。

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; // 实际笔者是咋这写的业务逻辑的,不是返回。
	})
}

以上给各位的是一种解决方案, 还有一种是 使用同步的方法编写,但是同步的方案会让浏览器有卡顿的情况出现。


你可能感兴趣的:(JavaScript,Ajax,同步,when,延迟对象)