强制浏览器立即呈现部分响应

时间:2013-01-19 00:28:15

标签: internet-explorer http google-chrome

当HTTP响应包含缓冲输出(即Transfer-Encoding: chunked)并且块之间存在延迟时,Chrome和Internet Explorer在收到整个响应之前不会显示响应。 Firefox将在内容到达时显示内容。

在Firefox中尝试this test page,然后在Chrome或IE中尝试。

有没有办法强制Chrome和Internet Explorer在收到内容时呈现内容,而不是等待完整的响应?有些HTTP标头可能吗?

2 个答案:

答案 0 :(得分:2)

诀窍是最初发送大量数据以强制浏览器开始渲染输出。在我的测试中,1024个字符足以让Chrome开始呈现响应。 IE10直到收到4065个字符才会响应。

这有点像黑客,但是做到了。

答案 1 :(得分:0)

Google Closure的browserchannel让服务器发送一个290字节的字符串来强制IE从第一个块中呈现内容:

请参阅https://code.google.com/p/libevent-browserchannel-server/wiki/BrowserChannelProtocol

处的“290字节字符串7cca694 ... e693af”