當HTTP響應包含緩衝輸出(即Transfer-Encoding: chunked
)並且塊之間存在延遲時,Chrome和Internet Explorer在收到整個響應之前不顯示響應。 Firefox將在內容到達時顯示。強制瀏覽器立即呈現部分響應
在Firefox,Chrome或IE中嘗試使用this test page。
有沒有辦法強制Chrome和Internet Explorer在接收時呈現內容,而不是等待完整響應?一些HTTP頭也許?
當HTTP響應包含緩衝輸出(即Transfer-Encoding: chunked
)並且塊之間存在延遲時,Chrome和Internet Explorer在收到整個響應之前不顯示響應。 Firefox將在內容到達時顯示。強制瀏覽器立即呈現部分響應
在Firefox,Chrome或IE中嘗試使用this test page。
有沒有辦法強制Chrome和Internet Explorer在接收時呈現內容,而不是等待完整響應?一些HTTP頭也許?
訣竅是最初發送大塊數據以強制瀏覽器開始渲染輸出。在我的測試中,1024個字符足以讓Chrome開始呈現響應。直到接收到4065個字符後,IE10纔會響應。
這是一個黑客,但沒有工作。
谷歌Closure的browserchannel有服務器發送一個290字節的字符串,迫使IE來呈現從第一大塊內容:
請參閱「290字節的字符串7cca694 ...... e693af」在https://code.google.com/p/libevent-browserchannel-server/wiki/BrowserChannelProtocol