前提・実現したいこと
javascriptでAjaxを通じてバックエンドのphpに処理をpostし、その結果をjsonで受け取っています。
しかしphp側の処理が重くてレスポンス時間が長いので、phpの重い処理部分をjsonのレスポンス送信後に行いたいと考えています。
その方法がいろいろ検索してもわからないためこちらにて質問させてください。
発生している問題
以下のようにphp側の処理は、javascriptでAjaxからリクエストを受けてDBからデータを取得し、json形式にしてjavascriptに返しています。
php
1class AjaxProcess { 2 public static function execute() { 3 // 例としてuser情報を取得する 4 $data = DB_VAR( 'users', id ); 5 6 // ここで何か重い処理をする 7 8 // json出力 9 header( 'Content-Type: application/json; charset=utf-8' ); 10 echo json_encode( array( 'status' => 'SUCCESS', 'data' => $data )); 11 } 12}
しかし重い処理を待たないとecho json_encode();
が実行されないため、クライアント側は待ち時間が長くなってしまっています。
試したこと
単純に、重い処理をecho json_encode();
の後に移動しましたが、状況は変わりませんでした。
php
1class AjaxProcess { 2 public static function execute() { 3 // 例としてuser情報を取得する 4 $data = DB_VAR( 'users', id ); 5 6 // json出力 7 header( 'Content-Type: application/json; charset=utf-8' ); 8 echo json_encode( array( 'status' => 'SUCCESS', 'data' => $data )); 9 10 // ここで何か重い処理をする 11 } 12}
解決したいこと
jsonを出力した後に重い処理を実行したいです。
重い処理は、出力するjsonの内容に影響しないため、json出力後に処理をしたいのです。
重い処理ですが具体的には他のサービスにAPIでデータを送信しているだけです。そのレスポンスが遅いため、待ち時間が多くなっています。
どうぞよろしくお願いします。
補足情報
環境は以下になります。
php7.2 windows10 xampp7.2.10

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。