我在 Google-Chrome 中遇到了一个奇怪的问题,即当使用长时间运行的脚本打开一个选项卡时,另一个选项卡处于“待处理”状态,直到第一个选项卡完成。我创建了一个小小提琴来重现此问题,并且还包括在 Safari 上运行的结果。当这个小提琴添加 ?q=a 和 ?q=b 时,它解决了这个问题。但是,当我调用两个不同的智能 url(http://domain.com/a/v1
http://domain.com/a/v2
甚至http://dev.domain.com/a/v6
or 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');
?>
在谷歌浏览器中打开两个并发标签时,输出:1:
Now: 11:01:12
1357117332
Now: 11:01:22
1357117342
2:
Now: 11:01:22
1357117342
Now: 11:01:32
1357117352
如您所见,尽管我几乎同时启动了它们,但第二个等待第一个完成后才开始。
在 Safari 上运行时也是如此: 1:
Now: 10:01:36
1357116336
Now: 10:01:46
1357116346
2:
Now: 10:01:37
1357116337
Now: 10:01:47
1357116347
如您所见,在 Chrome 中,第二个脚本仅在第一个脚本完成后才开始,而在 Safari 中,它们一起工作。什么会导致这种奇怪的行为?我应该寻找哪些信息来帮助调试原因?
更新:添加 ?q=a 和 ?q=b 解决此问题的答案是正确的。现在我试图弄清楚为什么我首先在这个问题上运行,尽管我调用了两个不同的 url。我正在使用智能网址,网址看起来甚至domain.com/dir/var1
都导致相同的效果。什么会导致这种情况?domain.com/dir/var2
dev.domain.com/var6