1

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

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

我在浏览器中运行了这个页面,同时它在执行的同时通过简单地注释睡眠功能对代码进行了更改,保存它,然后在同一个浏览器的另一个选项卡中运行同一个页面。我期待输出应该立即出现在第二个选项卡中,但它仅在执行第一个选项卡中的代码之后出现。

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

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

4

1 回答 1

0

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

于 2013-08-09T14:59:42.497 回答