【问题标题】:Force browser to render a partial response immediately强制浏览器立即呈现部分响应
【发布时间】:2013-04-09 17:26:55
【问题描述】:

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

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

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

【问题讨论】:

    标签: internet-explorer http google-chrome


    【解决方案1】:

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

    这有点小技巧,但确实可以。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2013-08-03
        • 2016-12-08
        • 2014-09-25
        • 2018-09-23
        • 2011-08-10
        • 2011-12-12
        • 2010-12-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多