Google chrome 流式传输文本数据时禁用Chrome缓冲
我们有一个通过http传输文本数据的站点。其设置方式如下:Google chrome 流式传输文本数据时禁用Chrome缓冲,google-chrome,http,streaming,Google Chrome,Http,Streaming,我们有一个通过http传输文本数据的站点。其设置方式如下: 它不做任何服务器端缓冲 内容类型是文本/普通 传输编码是分块的 压缩被禁用 当使用纯curl或FireFox时,文本从第一个字节流到浏览器。但当使用Chrome时,在发送1024字节之前不会显示文本。在那之后,一切都会立即出现 问题:有没有办法禁用此缓冲行为 更多信息:下面是一个简单的ASP.NET页面,演示了该行为: <%@ language=c# %> <% Response.BufferOutput
- 它不做任何服务器端缓冲
是内容类型
文本/普通
是传输编码
分块的
- 压缩被禁用
curl
或FireFox时,文本从第一个字节流到浏览器。但当使用Chrome时,在发送1024字节之前不会显示文本。在那之后,一切都会立即出现
问题:有没有办法禁用此缓冲行为
更多信息:下面是一个简单的ASP.NET页面,演示了该行为:
<%@ language=c# %>
<%
Response.BufferOutput = false;
Response.ContentType = "text/plain";
for (int i=0; i<50; i++)
{
Response.Write("01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567\r\n");
System.Threading.Thread.Sleep(1000);
}
%>
尝试将内容类型
从文本/普通
切换到应用程序/八位字节流
请查看以下内容,以便进一步阅读:
这个补丁对我非常有效。我遇到了与您描述的相同的问题,即发送编码为text/plain的小文本块;charset=UTF-8
在Chrome中造成延迟,但在Firefox中没有。将类型更改为application/octet在不影响FireFox性能的情况下解决了Chrome上的问题 将X-Content-Type-Options:nosniff
添加到您的标题中,并告诉我您的情况
根据:
X-Content-Type-Options
response HTTP头是
用于指示在中播发的MIME类型的服务器
内容类型
标题不应更改并遵循。这
允许选择退出MIME类型嗅探,或者换句话说,它是一个
也就是说,网站管理员知道他们在做什么
文本/事件流可以工作,并允许您在Chrome中预览响应,而无需尝试下载。不确定这是否是真正的mime类型,但我见过使用它。octet-stream
使浏览器将数据下载到文件中<代码>事件流
就像一个符咒。请参阅
<configuration>
<system.webServer>
<urlCompression doStaticCompression="false" doDynamicCompression="false"/>
</system.webServer>
</configuration>