ajaxリクエストまたは.load()リクエストのいずれかを使用して、同じdiv(.content)に異なるコンテンツを読み込むWebアプリケーションがあります。ajaxクエリの実行中にjQuery .loadが機能しない
AJAXリクエストの簡易版である:私は別のボタンに
$(document).on('click', '.button1', function() {
$.ajax({
type: "POST",
url: "/path/to/file/ajax.php",
data: {
'param1': 'xyz',
'param2': '123',
},
timeout: 10000,
dataType: "json",
success: function(data) {
if (data.status == 'Success') {
$('.content').html(data.result);
} else if (data.status == 'Error'){
console.log('Something went wrong')
}
},
error: function(x, status, error) {
if (status === "timeout") {
console.log('Request Timed Out');
}
},
});
});
:
$(document).on('click', '.button2', function() {
$('.content').load('/path/to/file/getContent.php?ref=foo');
});
問題は、私はボタン1をクリックした場合ということで、その後ながら、ボタン2をクリックしてくださいajaxリクエストはまだ実行中ですが、何も起こりません。 (つまり、getContent.phpは15〜30秒の間何も返さないようです)
ボタン2をクリックするとすぐに結果が返されますが、button1をクリックしてajaxリクエストを処理するとすぐにそれが完了するまで(またはエラー)、ウェブアプリ全体を「停止」するようです。
(私はまた、abort()メソッドを使ってajaxリクエストをキャンセルしようとしましたが、アボートが成功した場合でも同じ問題が続く)。 @adeneoから先端に続き
これはおそらくフロントエンドではなく、問題のサーバーです。 PHPは、同じセッション変数などを使用して複数のリクエストに問題がある場合があります。 – adeneo
@adeneo返信ありがとうございます - ajax.phpとgetContent.phpからsession_start()を削除しました(main.phpページ)それは問題を修正したようだ!アップデートを投稿する前にもう少しテストをします。 – JS77