0

我们已经依赖这个有一段时间了,最​​近更换了服务器。基本上在 php 文件结束时,我们关闭连接并做一些繁重的工作,我们不希望浏览器挂断。根据我的经验,我们使用的这种方法会关闭浏览器连接,用户不会有任何体验。在这个新服务器上,连接保持打开状态并导致浏览器挂起。

我制作了这个非常简单的测试文件来使用它:

<?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 :-(
?>
4

1 回答 1

1

这与 PHP 无关。您的新服务器可能支持 Keep Alive 连接(您的浏览器肯定会请求该连接),从而导致连接对后续请求保持打开状态。尝试将 Header("Connection: close") 添加到您的脚本或关闭 Web 服务器中的 Keep Alive 支持。

于 2013-07-28T23:54:31.910 回答