我有一个带有while(true)的JSP,其中数据被发送到浏览器。
while (true) {
out.print("pushing some data to browser");
out.flush();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
它大部分时间都有效,但很少数据不会以1秒的间隔发送到浏览器。
而不是排队并同时抛出所有数据。
答案 0 :(得分:0)
尝试添加
response.setBufferSize(0);
在代码块的开头。默认情况下,响应始终是缓冲的。您可以添加此行以禁用缓冲区。
答案 1 :(得分:0)
Roman C是对的,它不会像发布的那样编译。但是如果你修复了它,你会发现它在Firefox和Chrome中都有效。 但是,IE是不同的。它等待直到它获得相当数量的文本才能开始渲染。
IE needs some text here. zzzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzzzzz zzzzzzzzzz
zzzzzz I guess this enough for IE to start to render now.
<%
int x = 0;
while (x < 10) {
out.print("pushing some data to browser");
out.flush();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
x++;
}
%>