3 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
多個(gè)$.ajax()方法
如何做到傳遞參數(shù)對(duì)象賦值給ajax 的url ,datatype,等屬性
類似這種寫(xiě)法
function sendRequest(options) {
$.ajax({
url: options.url,
type:options.type,
dataType:options.dataType,
data:url.data,
error: options.error,
success:options.getresult
});
}
function requset1() {
var options = {
url: "",
data: "",
dataType: "",
getresult: function(data) { }
};
sendRequest(options);
}

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
ajax請(qǐng)求默認(rèn)就是并行,如果你一個(gè)方法中需要處理多個(gè)ajax請(qǐng)求,并且需要執(zhí)行完一個(gè)再執(zhí)行下一個(gè),可以通過(guò)ajax的回調(diào)函數(shù)中再調(diào)另一個(gè)請(qǐng)求。 你說(shuō)的2個(gè)兩個(gè)請(qǐng)求恰好在同一時(shí)刻發(fā)送會(huì)不會(huì)有事,那就要看你請(qǐng)求是做了什么事情,比如同時(shí)對(duì)數(shù)據(jù)庫(kù)

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
首先你的這個(gè)實(shí)現(xiàn)邏輯就有問(wèn)題,怎么可能會(huì)想到用for 去做n次ajax提交呢,你得知道你現(xiàn)在上面寫(xiě)的這種ajax提交方式為異步方式,何為異步,就是當(dāng)ajax請(qǐng)求發(fā)出后當(dāng)前邏輯就認(rèn)為你的這次請(qǐng)求完成了,當(dāng)前邏輯會(huì)繼續(xù)往下執(zhí)行而不會(huì)去管你的這個(gè)ajax請(qǐng)求是否執(zhí)行完并成功返回的,如你for了10次,那么for只會(huì)管執(zhí)行10個(gè)ajax提交,因?yàn)閍jax是異步方式,所以你在for里面無(wú)法控制你的這10次ajax是否都正常的執(zhí)行并返回的,這10次ajax提交的返回是無(wú)序的。所以一般都不會(huì)用這樣的邏輯來(lái)處理問(wèn)題,如果實(shí)在非得要用這種邏輯,那么得將ajax請(qǐng)求方式改成同步方式,即將async:false 改成 async:true,這樣就可能如你的預(yù)期,一個(gè)ajax執(zhí)行完正常返回后才行下一個(gè)ajax,
==================================================================
哦,那是我記錯(cuò)咯,如果你實(shí)在要用這種實(shí)現(xiàn)邏輯的話,我倒建議你不要這么寫(xiě),類似下面這種寫(xiě)法應(yīng)該好處理些的:
for (var i=0; i<9; i++)
{
var post_data = new Array('rand':new Date().getMilliseconds())
var post_retn = eval('('+ $.ajax({type:'post', data:post_data, url:'xxxxx&rand=' + new Date().getMilliseconds(), async:false}).responseText +')');
alert(post_retn);
}
添加回答
舉報(bào)