浏览器没有同时在两个选项卡中执行同一页


Browsers not executing the same page in two tabs simultaneosly

在测试一个长执行脚本时,我遇到了一个奇怪的问题,所以我尝试使用一个简单的脚本进行测试。为了进行测试,我用下面的代码制作了一个简单的PHP页面。

<?php
sleep(60);
echo 1; 
?>

我在浏览器中运行了这个页面,当它同时执行时,只需简单地注释睡眠函数就可以对代码进行更改,保存它,然后在同一浏览器的另一个选项卡中运行同一页面。我原以为输出应该立即出现在第二个选项卡中,但它是在执行第一个选项卡中的代码之后才出现的

我重复了上面的步骤,但这次在查询字符串中添加了随机数。它按预期工作,即尽管第一个选项卡正在执行页面,但第二个选项卡响应了结果。

现在我很想知道为什么浏览器不在两个不同的选项卡中执行同一个页面,尽管页面在同一时间发生了变化。我在Firefox和chrome中测试了它,我的服务器是Apache。

我打赌你会使用会话。session_start()锁定会话文件,或者等待,直到其他进程解锁为止。尽快使用session_write_close()