2013-07-28 183 views
0

我们一直依赖这一段时间和最近更改的服务器。基本上,在一个php文件的结尾,我们关闭连接并做一些繁重的工作,我们不希望浏览器挂断。根据我的经验,我们使用的这个方法关闭浏览器连接,用户不会遇到任何问题。在这台新服务器上,连接保持打开状态并导致浏览器挂起。PHP ob_end_flush()不关闭浏览器连接

我做了这个非常简单的测试文件与它玩:

<?php 
ob_end_clean(); 
ob_start(); 
?> 

<html> 
<head> 
<title></title> 
</head> 
<body> 
testing... 
</body> 
</html> 

<? 
$size = ob_get_length(); 
header("Content-Length: $size"); 
header('Connection: close'); 
ob_end_flush(); 

//anything below this should NOT hang up the browser 
sleep(30); //but it does :-(
?> 
+0

我无法复制。请发布'phpinfo()'。 –

回答

1

这有什么做用PHP。您的新服务器可能支持Keep Alive连接(您的浏览器肯定会请求连接),从而导致连接保持打开状态,以便进行后续请求。尝试将Header(“Connection:close”)添加到脚本中或关闭Web服务器中的Keep Alive支持。

+0

标题(“Connection:close”)在上面的原始代码中。我会联系服务器所有者,并查看“Keep Alive”。当我找到答案时我会回来,谢谢你指出我正确的方向。 – Sean256

+0

我的主机声称他们没有“Keep Alive”打开。 – Sean256