我正在寫一個Sql轉換器,它處理mysql到mongodb。我用ajax寫了一個接口到我的轉換器。Jquery ajax在循環中
Ajax正在處理巨大的轉換。這限制了mysql選擇代碼並且一次進行1000次轉換。
我的代碼是:
$(document).ready(function()
{
<!--Start JQuery Ajax Requests-->
var pages;
var type;
$("input").click(function(event) {
pages = $(this).attr("icr");
type = $(this).attr("id");
runRequest(0);
});
function runRequest(num){
if (num > 3){
$("#console").append("Finish!!!");
return;
}
$.ajax
({
type: "POST",
url: "#",
async: false,
data: "type="+type+"&page="+num*1000,
success: function(msg){
$("#console").ajaxComplete(function(event, request, settings)
{
$("#console").append(msg);
runRequest(num+1);
});
}
});
}
});
該代碼必須運行同一功能的3倍,乘以其發送的數量限制。但不知何故runRequest的num變量永遠不會達到3,螢火蟲控制檯顯示數量爲1或有時2,它重複無限。如何避免它,並使其只運行3個同步的呼叫?
我不認爲這樣的「ajaxComplete」方法必須聲明爲你的「成功」回調:它是redondant與當前的回調。只是嘗試評論這一行,讓我們知道它是如何工作 – sdespont
你的意思是我應該評論ajaxcomplete方法嗎?像這樣//$("#console").ajaxComplete(function(事件,請求,設置) –
是的,事實是你每次到達成功回調函數都要聲明一個新的處理函數,它可能會產生一些問題 – sdespont