当服务器回复大量响应时,IE 9会挂起

时间:2014-01-14 11:41:20

标签: php internet-explorer

我正在测试我编写过php脚本的下载功能。此脚本使用fopen和fread读取大文件(10MB)。使用fread我在一个缓冲区中读取一个10MB的块,我正在回显该缓冲区,然后使用flush和ob_flush函数刷新。这样客户端就会收到这个缓冲区,我可以检查收到的字节数。这在Chrome,FireFox和IE 8中运行良好但是当我在IE 9中测试它时,浏览器挂起并且我无法获得正确的下载字节。 有人可以建议我们可以用来测试这个的其他选项吗?

  define('CHUNK_SIZE', 1024*10240);
  $handle=fopen("10MBFile", 'rb');
  $buffer=fread($handle, CHUNK_SIZE);
  echo $buffer;
  ob_flush();
  flush();

Regds

1 个答案:

答案 0 :(得分:0)

我在IE9 +和apache上遇到过很多奇怪的问题,可以通过将这些内容添加到httpd.conf来解决这个问题:

# Deal with user agents that deliberately violate open standards
#
<IfModule setenvif_module>
BrowserMatch "MSIE 10.0;" bad_DNT
</IfModule>
<IfModule headers_module>
RequestHeader unset DNT env=bad_DNT
</IfModule>
AcceptFilter https none 
AcceptFilter http none 
EnableSendfile Off 
EnableMMAP off