我一直在尋找我的大腦,但我似乎無法將我的頭圍繞我找到的小幫助。AJAX觸發器遠程腳本,然後檢查成功響應
我正在運行由另一個數據庫中的數據提供的數據庫。 csv傳輸由第三方服務器處理,該第三方服務器提供編譯和傳送數據的可執行「流」。
我有一個PHP腳本來處理請求(由於缺少'Access-Control-Allow-Origin'標頭,不能通過Javascript直接完成)。但這很好。我可以觸發流量。
雖然這不是問題。 我想要做什麼:觸發按鈕的流動@onClick像這樣的東西:
function trigger_func(flowID) {
$.ajax({
url: './ajaxPHP_handler.php',
data: "flowid="+flowID,
dataType: 'json',
success: function(result) {
var jsonResult = jQuery.parseJSON(result);
console.log(jsonResult.runID);
}
});
}
隨着流ID,並將所得的runid我想回來看看像每秒左右。
function check_status(flowID, runID) {
$.ajax({
url: './ajaxPHP_handler.php',
data: "flowid="+flowID+"&action=status&runId="+runID,
dataType: 'json',
success: function(result){...}
});
}
這將返回流的狀態/進度。 它會在status == null的狀態下啓動幾秒鐘,然後進入狀態=='運行',最後狀態=='成功'。 我已經得到了check_status()在trigger_func()的成功函數內的for循環中運行了15次,並且setTimeout也可以正常工作。 但我不能爲我的生活弄清楚如何將這些東西鏈接在一起,讓它檢查,直到狀態爲'成功',然後停止檢查,更新頁面內容等...
我也撥弄有點像
trigger_func(id).done(function(result){
console.log(result);
});
這樣做也可以,但我仍然想不到我的方式進一步檢查每一秒,直到'成功'。我想它歸結爲變量'狀態'回到我的循環,所以我可以打破它。
也許有人易於理解的例子都知道網上什麼地方...
讓我明白了,基本上你想使一個週期性的AJAX請求,直到成功狀態返回,在這一點上,應立即停止。我對麼? – qwattash
是的。這是我想要做的 –