2 つの AJAX リクエストが同時に実行されていることに問題があります。データを XSLX にエクスポートする PHP スクリプトがあります。この操作には時間がかかるため、進行状況をユーザーに表示しようとしています。私はAJAXとデータベースのアプローチを使用しています。実際、以前は機能していたと確信していますが、理由がわかりません。どのブラウザーでも機能しなくなりました。新しいブラウザーで何か変更がありましたか?
$(document).ready(function() {
$("#progressbar").progressbar();
$.ajax({
type: "POST",
url: "{$BASE_URL}/export/project/ajaxExport",
data: "type={$type}&progressUid={$progressUid}" // unique ID I'm using to track progress from database
}).done(function(data) {
$("#progressbar-box").hide();
clearInterval(progressInterval);
});
progressInterval = setInterval(function() {
$.ajax({
type: "POST",
url: "{$BASE_URL}/ajax/progressShow",
data: "statusId={$progressUid}" // the same uinque ID
}).done(function(data) {
data = jQuery.parseJSON(data);
$("#progressbar").progressbar({ value: parseInt(data.progress) });
if (data.title) { $("#progressbar-title").text(data.title); }
});
}, 500);
});
- 進行状況はデータベースで正しく更新されています
- JS タイマーが進行状況を取得しようとしています。コンソールで確認できますが、これらのすべての要求は最初のスクリプトの全期間をロードしています。スクリプトが終了するとすぐに、これらの ajax 進行状況呼び出しがロードされます。
では、なぜ 2 番目の AJAX 呼び出しは最初の呼び出しが終了するのを待っているのでしょうか?