良い一日。
まず、下手な英語でごめんなさい =)
そう。スクリプトを作成しました:
<?
sleep(10);
?>
私の Apache には MPM モジュールがあります。明らかに、このスクリプトではセッションを使用していません。単に sleep(10) だけです。ブラウザで 2 つのタブを同時に開くと、最初のタブは 10 秒でロードされ、2 番目のタブは 20 秒でロードされます。
しかし。このスクリプトを 2 つの異なるブラウザーで同時に開くと、それぞれのブラウザーで 10 秒後に読み込まれます。
だから、私の問題は「接続:キープアライブ」だと思い始めました。スクリプトを変更しました:
<?
header('Connection: close');
phpinfo();
sleep(10);
?>
phpinfo() - 確かに、ヘッダーは sleep() の前に送信されました。Buuuut... 私は同じ問題に遭遇します。Chrome の最初のタブでは、「接続: 閉じる」というヘッダーを取得します。2 番目のタブでは、最初のスクリプトが終了していない間、応答ヘッダーを取得できません。2 つの異なるブラウザーでは、すべて正常です。
そして今、私は自分が何を間違っているのかまったくわかりません。Chrome がサイトに対して 2 つの並列クエリを作成できないのはなぜですか? この問題を解決するにはどうすればよいですか?
PS すべてのサイトでキープアライブを無効にしたくありません。CSS、画像、その他のものの読み込みが高速化されるかどうかは気にしません。他のスクリプトでも。しかし、1 つのブラウザーでいくつかのスクリプトを並行して実行できるようにしたいと考えています。PPSたとえば、1ページで非常に長いajaxクエリになります。たとえば、サーバー側で大きなデータを処理し、少し間隔を置いてajaxクエリを処理して、最初のクエリの実行ステータスを取得します。明らかに、それらは平行でなければなりません。