2つの同時AJAX要求の実行に問題があります。私はXSLXにデータをエクスポートしているPHPスクリプトを持っています。この操作には多くの時間がかかるため、ユーザーに進捗状況を表示しようとしています。私はAJAXとデータベースアプローチを使用しています。実際には、私はそれが動作するために使用されていたと確信していますが、私は理由を把握することはできません、それはもはや任意のブラウザで動作していません。新しいブラウザで何か変わったのですか?2つの同時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コールが最初のコールを待っているのですか?
一部のPHP Webサーバー構成では、セッションごとに1つの接続のみを同時に実行できます。したがって、セッションを使用している場合は、(a)セッションを開始し、(b)60秒間スリープするページで実験を試してください。次に、このページの複数のインスタンスを同じブラウザにロードしてみてください。 – halfer
最近jQueryバージョンを更新しましたか? –
また、一般に、複数のAJAX運用は、過剰なHTTPコールに対して時間を浪費するため、ベストプラクティスではありません。それらを1つにマージし、いくつかの結果をJSON文字列に戻すことはできますか? – halfer