3

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

在 Firefox 中尝试此测试页面,然后在 Chrome 或 IE 中尝试。

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

4

2 回答 2

2

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

这有点骇人听闻,但确实有效。

于 2013-01-19T00:46:06.687 回答
0

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

请参阅https://code.google.com/p/libevent-browserchannel-server/wiki/BrowserChannelProtocol上的“290 字节字符串 7cca694...e693af”

于 2013-04-09T09:26:55.207 回答