Firefox是否同步同一页面的请求?

时间:2010-07-19 19:24:47

标签: php internet-explorer firefox synchronized

我正在使用Firefox 3.6.6。

我有一个名为index.php的PHP脚本,其代码如下:

<?php
sleep(20); die(time());
?>

我打开两个浏览器标签,将URL复制到每个标签中,然后在每个标签中快速按回车键。第一个标签在短短20秒内完成。第二个标签在40秒内完成。

我在IE中进行相同的实验,两个脚本在一秒钟内完成,大约20秒。

这是预期的行为吗?导致我测试它的实际脚本是一个同步过程。我希望任何人试图执行两次以接收该进程已在进行中的错误,而不是让浏览器坐在那里等待它再次执行它。

如果这是Firefox的工作原理,它如何确定页面何时重复并且它应该排队请求而不是同时运行它们?

我可以通过在末尾添加一个垃圾GET字符串来欺骗它,例如index.phpindex.php?JUNK=1都在20秒左右完成。

1 个答案:

答案 0 :(得分:2)

这是缓存机制:如果禁用所有缓存,则不会发生问题。显然,FF开发人员检查当请求仍在加载时它可能是可缓存的,所以它等待第一个,然后才决定不使用缓存,然后才调度第二个请求(你可以在时间戳中检查它)你的日志文件)。

您可以尝试使用一些无缓存标头和放大器。一个flush()数据到客户端,也许它可以确定缓存不是接收标头时的选项,虽然我怀疑只有在加载内容后才进行缓存检查。