更新了我的下面執行2個同時使用jQuery和Ajax後臺任務
問題,我做了一個腳本,用戶可以導入大量的數據。表單提交併驗證數據後,我添加2個後臺任務:1是一個導入所有數據的腳本。這個腳本還可以讓數據庫知道總共有多少,以及他做了多少。第二個是從數據庫讀取多少內容並將其顯示在一個不錯的進度條中的腳本。
代碼:
$.ajax({
type: "GET",
url: "import-process.php",
success: function(data) {}
});
var process = 0;
var checkPercentage = function() {
$.ajax({
type: "GET",
url: "get-process-status.php",
data: "importcode=123456",
success: function(data) {
if (!data.indexOf("ERROR") !== -1) {
process = data;
$("#process_balk").css('width', process + '%');
}
}
});
if (process != 100) {
setTimeout(checkPercentage, 1000);
} else {
window.location.href = "import-finished.php";
}
}
checkPercentage();
兩個腳本,做工精細。除了第一個(導入數據)完成後第二個腳本(獲取進程的狀態)沒有啓動。這使得完整的東西有點無用。
任何想法如何解決這個問題?
更新: 我發現後臺進程只被調用一次。那就是問題所在。我只是不知道如何解決它..
var checkPercentage = function() {
alert("Is this function getting called every second?");
$.ajax({
type: "GET",
async: true,
url: "required/get-process-status.php",
data: "importcode=123456",
success: function(data) {
alert(data);
}
});
setTimeout(checkPercentage, 1000);
}
上面的代碼警告「這個函數每秒鐘都會被調用嗎?」每一秒。喜歡它應該。但是,「數據」的值只被調用一次。這不是我所期望的。任何想法?