ajax request in for loop
有時候我會希望發送出許多ajax的請求,然後希望他們回來可以自己更新自己~~~~像是這樣
for(var i=0;i<5;++i){
var obj_id ="div_"+i;
$.get("url here","",function(data){
$("#obj_id").append(data);
});
}
不過後來發現,這樣根本無效,因為那個無名函式是個callback function,所以會等到ajax請求完成後才呼叫他,於是那個obj_id(通常) 都是 div_5(因為迴圈一下就跑完了)。 一直不知道怎麼解決這個問題 T_T (太弱了..orz)。
後來發現包在jquery的.each可以成功,也就是改寫如下:
var id_array = [1,2,3,4,5];
$.each(id_array,function(i,val){
var obj_id ="div_"+val;
$.get("url here","",function(data){
$("#obj_id").append(data);
});
});
這樣就可以了,所以如果仿照這樣的精神,大概可以寫成下面這樣。 不過不知道是否有更好的作法?….
function ajax_call(i){
var obj_id ="div_"+val;
$.get("url here","",function(data){
$("#obj_id").append(data);
});
}
var id_array=[1,2,3,4,5]
for(var i=0;i<di_array.length;++i){
ajax_call(i);
}


最新留言