当HTTP响应包含缓冲输出(即Transfer-Encoding: chunked
)并且块之间存在延迟时,Chrome和Internet Explorer在收到整个响应之前不会显示响应。 Firefox将在内容到达时显示内容。
在Firefox中尝试this test page,然后在Chrome或IE中尝试。
有没有办法强制Chrome和Internet Explorer在收到内容时呈现内容,而不是等待完整的响应?有些HTTP标头可能吗?
答案 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”