2013-07-28 138 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