5

Google-Chrome で奇妙な問題が発生しています。あるタブが実行時間の長いスクリプトで開いていると、最初のタブが完了するまで別のタブが「保留」状態になります。この問題を再現するために小さなフィドルを作成しました。また、Safari で実行した結果もここに含めています。このフィドルに ?q=a と ?q=b を追加すると、この問題が解決されます。http://domain.com/a/v1 http://domain.com/a/v2ただし、2 つの異なるスマート URL (または またはhttp://dev.domain.com/a/v6または) を呼び出すとhttp://dev.domain.com/b/v8、この「保留中」の動作も発生します。

フィドル:

<?php
echo time();
echo '<br>Now:       '. date('h:m:s');

sleep(10);

echo time();
echo '<br>Now:       '. date('h:m:s');

?>

Google Chrome で同時に 2 つのタブを開くと、出力: 1:

Now: 11:01:12
1357117332
Now: 11:01:22
1357117342

2:

Now: 11:01:22
1357117342
Now: 11:01:32
1357117352

ご覧のとおり、両方をほぼ同時に開始しましたが、2 つ目は 1 つ目の終了を待ってから開始しました。

Safari で実行する場合も同じです: 1:

Now: 10:01:36
1357116336
Now: 10:01:46
1357116346

2:

Now: 10:01:37
1357116337
Now: 10:01:47
1357116347

お気づきのように、Chrome では最初のスクリプトが終了した後に 2 番目のスクリプトが開始されましたが、Safari では一緒に動作しました。この奇妙な動作の原因は何ですか? 原因のデバッグに役立つ情報は何ですか?

更新: ?q=a と ?q=b を追加するとこれが解決するという答えは正しいです。今、私は2つの異なるURLを呼び出しているにもかかわらず、なぜこの問題で最初に実行しているのかを理解しようとしています. 私はスマート URL を使用しています。URL の外観domain.com/dir/var1domain.com/dir/var2、さらにはdev.domain.com/var6すべてが同じ効果を引き起こします。何が原因でしょうか?

4

1 に答える 1

6

これは Chrome の動作です。

まったく同じ URL に対して GET リクエストを実行すると、最初のリクエストが終了するまで待機します。のようないくつかの異なるパラメーターを追加して URL を変更するだけ?q=aで、それらが同時に実行されることを確認できます。

于 2013-01-02T09:14:28.167 に答える