我使用jQuery AJAX請求動態獲取數據。 Ajax調用是嵌套的,它們在每個先前請求的success
函數中被調用。我這樣做是爲了不把太多的負載放在服務器上。下一個請求只應發送,如果前一個是已完成或成功。根據條件線性執行請求
這裏是Ajax代碼
function showforLanguagetra(option, catid, meta)
{
$.ajax({ ///execute only if catid = 1,3,6,8
type:"GET",
url: "/Ajax1111",
data: {
opt: option,
cid: catid,
mta: meta
},
success: function(data){
$("#1111").html(data);
$.ajax({ ///execute only if catid = 5,7,9
type:"GET",
url: "/Ajax2222",
data: {
opt: option,
cid: catid,
mta: meta
},
success: function(data){
$("#2222").html(data);
$.ajax({ ///execute only if catid = 2,5,4,8
type:"GET",
url: "/Ajax3333",
data: {
opt: option,
cid: catid,
mta: meta
},
success: function(data){
$("#3333").html(data);
$.ajax({ ///execute only if catid = 6,4,8,9,0
type:"GET",
url: "/Ajax4444",
data: {
opt: option,
cid: catid,
mta: meta
},
success: function(data){
$("#4444").html(data);
$.ajax({ ///execute only if catid = 2,3,5,7,4
type:"GET",
url: "/Ajax5555",
data: {
opt: option,
cid: catid,
mta: meta
},
success: function(data){
$("#5555").html(data);
}
});
}
});
}
});
}
});
}
});
}
此代碼工作正常!
但是這裏需要的是,我想要執行一個基於在catid中的值的ajax請求,如ajax代碼中的註釋所示。 我知道,如果條件是滯後於但是是新來的jQuery AJAX所以不知道在哪裏以及如何使用它
對我來說這個問題跟jQuery或AJAX無關。你不能只在你的$ .ajax調用周圍使用if-blocks嗎? 'if([1,3,6,8] .indexOf(catid)> -1){$ .ajax(...'等等? – johusman 2012-07-23 08:54:46
如果條件爲false,它會停止所有嵌套的請求 – 2012-07-23 09:10:31
啊,你想要考慮後續的請求,即使不應該做一些? – johusman 2012-07-23 09:13:38