我'我正在使用XMLHttpRequest 2
通过chunked
事件获得onprogress
响应并在浏览器中显示。一切似乎都很好,但我有点混乱。请考虑以下代码:
<?php
echo "I' am sending ";
ob_flush();
flush();
echo "content to client.";
ob_flush();
flush();
这是向客户端发送PHP
响应的非常标准的chunked
方式。但是我希望将输出作为两个不同的块,一个包含第一个echo
的结果,另一个包含第二个。但是我&#39;我得到了两个echo
语句的组合块。当我在sleep(1)
之后放置flush()
时,一切似乎都正常。
我的问题是,在发送已经收到的块之前,是否有一些故意等待Web服务器端等待其他内容,或者是否有一些线程调度机制迫使Apache的网络层等待它。
我忘了提到我已经禁用了网络服务器的输出缓冲,这意味着如果来自PHP的flush
某些东西将被发送到浏览器。
非常感谢任何帮助。
感谢。
答案 0 :(得分:0)
请参阅:http://www.icemelon.com/tutorials/20/Output_While_Script_Still_Running.htm
您可能会在此处看到浏览器输出缓冲。尝试添加:
for($k = 0; $k < 40000; $k++)
echo ' ';
在你冲洗之前,为了填满浏览器的缓冲区并让它吐出你的输出。