ajaxを使用してphpスクリプトに対して複数の同時リクエストを作成しようとしていますが、一度に1つのインスタンスしか実行しないようで、前の呼び出しが終了するまで次の呼び出しを実行するために接続できません。それらをすべて同時に実行させるには、何をする必要がありますか?WindowsでApache(xampp)を使用しています。私はこれをUNIXサーバーでもテストしましたが、同じことがそこでも起こっています。
1 に答える
理論的には、1つのPHPスクリプトが複数回並行して実行されることを妨げるものは何もありません。そうでないと、多くのWebサイトで大きな問題が発生します;-)
だから、おそらく、あなたの状況では、これを防ぐいくつかのロックメカニズムがあります...
スクリプトがセッションを使用していて、それらがファイルベース(デフォルト)である場合、それらのセッションはその種の問題を引き起こす可能性があります。デフォルトのセッションハンドラーでは、複数のファイルが同じセッションデータにアクセスすることはできません(つまり、特定のユーザーに対応するセッションデータ)同時に; これは、あるスクリプトが別のスクリプトのデータをオーバーライドするのを防ぐためであり、おそらく無効にしないでください。
したがって、スクリプトがセッションを使用している場合:セッションの使用を停止しても大丈夫ですか?
そうでない場合は、それらを保存するために使用されるファイルのロックを解除するために、それらが不要になったらすぐに閉じるようにしてください。
session_write_close
これについては、のマニュアルページからの引用です。
セッションデータは通常、スクリプトが終了した後、session_write_close()を呼び出さなくても保存されますが、セッションデータは同時書き込みを防ぐためにロックされているため、一度に1つのスクリプトのみがセッションを操作できます。
フレームセットをセッションと一緒に使用すると、このロックによりフレームが1つずつ読み込まれることがあります。
セッション変数へのすべての変更が完了したらすぐにセッションを終了することにより、すべてのフレームをロードするために必要な時間を短縮できます。