在测试一个长执行脚本时,我遇到了一个奇怪的问题,所以我尝试使用一个简单的脚本来测试它。为了测试,我创建了一个带有以下代码的简单PHP页面。
<?php
sleep(60);
echo 1;
?>
我在浏览器中运行了这个页面,同时它正在执行,只需简单地注释睡眠功能就可以更改代码,保存它然后在同一个浏览器的另一个选项卡中运行相同的页面。我期待输出应该立即出现在第二个选项卡中,但只有在第一个选项卡中执行代码后才会出现。
我重复了上述步骤,但这次在查询字符串中附加了随机数字。它按预期工作,即虽然第一个标签正在执行页面第二个标签回显结果。
现在我有兴趣知道为什么浏览器没有在两个不同的选项卡中执行相同的页面,尽管页面同时发生了变化。我在Firefox和chrome中测试过它,我的服务器是Apache。
答案 0 :(得分:0)
我打赌你用会话。 session_start()
锁定会话文件,或等待其他进程解锁。尽快使用session_write_close()
。