0
私はPHPファイルに単純なAJAXリクエストを持っています。 PHPスクリプトがある時点に達すると、私は応答が完了してクライアントに返信したいと思います。その後も、最大15秒かかる機能を実行するにはPHPスクリプトが必要です。現在、ブラウザは応答を処理する前にPHPスクリプト全体が終了するのを待ちます。 flush();
またはob_flush();
を使用しようとしましたが、応答を送信する前にPHPスクリプトの実行が完了するのを待っていました。スクリプトが終了する前にphpからajaxへの応答を返す
はJQueryコード:
jQuery.ajax({
url: "../phpFile.php",
data: formdata,
cache: false,
contentType: false,
processData: false,
type: 'POST',
success: function (data) {
data = $.parseJSON(data);
if(data.success){
window.location = "../public/dashboard.php";
}
}
});
PHPコード:
if ($script_reached_this_point) {
// ob_start();
echo json_encode(['success' => 'Ticket added']);
//flush();
// ob_end_flush();
run_15_second_function();
}
での作業を続けています。あなたは2つのスクリプトを呼び出すことができます。最初のスクリプトから応答を得た後に起動される15秒のスクリプトですか? – Nick
ありがとう、はい私は、ajax関数を実行するためにPHPスクリプトに別の要求をすることができます。私はちょうどそれが別の要求であるので非効率だと思った。私は基本的な解決策がないと思った。 – StoneLight
私はあなたがバックグラウンドで実行できる別のプロセスを開始できると確信しています(そして、メインプロセスが終わっても終了しないように設定されています)。問題は、その機能が15秒間実行される理由です。非常に長いです... – Jakumi