我在與AJAX的什麼我試圖完成固有的異步岬問題上的連續任務...使用Ajax做一套PHP服務器
使用文件上傳表單,我試圖發送一組數據到我的LAMP服務器,然後循環遍歷數據的每個子集併爲每個子集生成一個PDF。這需要2分鐘左右的時間來處理所有的PDF,因爲每個數據子集都有很多(如100)。
我希望能夠使用JavaScript/jQuery將數據分割成我將一次發送到服務器的子集,並且在生成每個PDF時,從服務器獲取響應並增加進度條,然後發送下一個請求。
你會如何在循環中完成此操作?下面的內容不起作用,因爲jQuery不關心服務器的狀態並異步發送所有請求。
var i = 0;
$.each(data_stuff, function(key, value) {
$.post(window.location.href, {
stuff: key,
data: value
}).done(function(data) {
if (data == 1) {
$('div#counter').text(i);
}
});
$i++;
});
謝謝!
我會推薦使用'Promise's。以下鏈接是一個很好的介紹:https://scotch.io/tutorials/javascript-promises-for-dummies(並且它不只是傻瓜!)特別是,查看鏈接承諾部分。 – nb1987
那麼你試圖做什麼。在所有ajax完成後做一些事情,或者,一個ajax在另一個完成後開始? –
一種方法是一次發送所有數據,並在會話變量中有服務器端腳本更新進度....然後設置另一個長輪詢ajax調用來監視該會話變量的進度 – charlietfl