数据没有推送到浏览器?

时间:2013-03-09 13:40:30

标签: java jsp

我有一个带有while(true)的JSP,其中数据被发送到浏览器。

while (true) {
    out.print("pushing some data to browser");
    out.flush();

    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
    }
}

它大部分时间都有效,但很少数据不会以1秒的间隔发送到浏览器。

而不是排队并同时抛出所有数据。

2 个答案:

答案 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++;
}
%>