在Firefox / IE上长时间运行php脚本问题

时间:2012-01-12 12:15:46

标签: php

我正在执行一个php脚本,执行大约需要8分钟。这段代码在chrome上运行正常,但在IE / Firefox上却无法正常工作。在chrome中,我在8分钟后获得输出,但在IE / Firefox中我没有得到任何响应。

可能有什么问题?请帮忙。浏览器/标题的任何问题。

3 个答案:

答案 0 :(得分:0)

如果您生成类似于长条目列表的内容,则可以尝试通过调用flush来推送已经生成的数据。这样浏览器现在可以获得一些数据块,这样可以防止它超时连接。

但是,一般来说,运行8分钟的脚本似乎不是一个好主意。也许有一种方法可以用cron生成输出?

答案 1 :(得分:0)

请注意,如果在一段时间内未收到任何响应,某些版本的IE(至少7个)将超时。您可能需要尝试以下几种方法:

  • 将繁重的工作转移到某个后台进程,并在完成后轮询状态/通知。但这可能需要大量的代码重组。
  • 缓存您可以使用的内容 - 如果您正在生成下次可能可用的资源,请保存不需要重新生成的部分。
  • 最坏情况黑客/解决方法:在处理开始时发送标头,加上一些空白字符(测试看看有多少工作量),并且(如果可能的话)在几十秒内发送一些空格({{1 }})。这应该让客户满意正在进行;处理完成后,发送结果(或重定向到它,如果需要引导空格)。

答案 2 :(得分:0)

Firefox可能会在超时后丢弃连接。 PHP应该在几秒钟内(最多一分钟)给出答复。任何你需要的时间

  1. 在代码中确定为什么需要这么长时间
  2. 如果您无法在合理的时间内完成操作,请提供回复,然后执行该过程或拥有一个作业队列,并将该作业放入该队列以进行另一个进程(PHP脚本?)以执行脱机操作。
  3. 首先尝试使用(1),因为这是最简单的选项。