次のように、CRMのAPIと対話できるPHPスクリプトを呼び出すサインアップフォームがあります。
CRM API<->PHPスクリプト<->サインアップフォーム
- サインアップフォームは、1回のAJAX呼び出しでPHPスクリプトにいくつかの情報を渡します
- PHPスクリプトは、CRMに対して12個のAPI呼び出しを実行して、アカウントを作成し、さまざまなデータを添付します
- CRMは、作成したばかりの新しいアカウントIDをPHPスクリプトに返します。
- PHPスクリプトは、アカウントIDをサインアップフォームに戻します。この時点で、AJAX呼び出しが完了し、サインアップフォームを続行できます。
問題は#2です。これらの数十回の呼び出しは完了するのに約20秒かかりますが、サインアップフォームに必要なデータは、最初のAPI呼び出しの後に生成されるため、理論的には、そのデータをはるかに早く返し、サーバー側の残りの部分を実行する必要があります。そのAJAX呼び出しを保持すると、常に開いています。
処理が完了する前にクライアントにアカウントIDを出力するflush()とob_flush()を試しましたが、jQuery AJAX接続が開いたままなので、何かが起こる前にサインアップフォーム側で接続が閉じられるのを待っています。 。
では、そのアカウントIDをできるだけ早くフォームに返すための最も簡単なルートは何でしょうか。
たぶん、curlとexecを使用して発生しますか?
if(signing up){
stuff
exec(curl myself, notsignup)
}
else {
bunch of api calls
}