忽略用户中止,被PHP忽略?

时间:2010-01-11 17:32:32

标签: php

全部发生,

我使用了以下ignore_user_abort

ignore_user_abort(true); set_time_limit(0); session_start();

但是,当我离开我发出AJAX请求的页面时,脚本会停止吗?

我做错了什么?

更新

在PHP手册中,它说:

  

PHP不会检测到用户有   中止连接,直到   尝试发送信息   客户端。只需使用回声   声明不保证   信息已发送,请参阅flush()。

似乎建议您可以使用echo,它只会识别用户已断开连接并且会继续?

3 个答案:

答案 0 :(得分:1)

  

PHP将不会检测到......直到有人向客户端发送信息

这听起来像是:当php无法将其缓冲区刷新到客户端时:停止。所以我建议使用ob_start()来缓冲页面开头的每一个,你也可以用这种方式实现gzip:ob_start('ob_gzhandler')

答案 1 :(得分:0)

也许您的服务器有内置超时可以杀死脚本? 您还应该注意,不应在中止的脚本中使用echo,因为您无处可以发送输出。

答案 2 :(得分:0)

需要考虑的一些事项

您确定用户中止导致问题吗?

您是否检查过日志以查看是否记录了任何错误。?

无论脚本本身如何,您的服务器都会终止脚本吗?

即使是ajax调用吗?我假设它在用户导航时运行。

您可以使用wireshark来观察浏览器和网络服务器之间的流量,以确保您认为实际发生的事情正在发生。

DC