想做一个聊天室,需要用这个东西。能否提供个思路。
我从网上找到的代码,本地测试还行,一发到服务器上就不行了。<%
for(int i=1;i<=1000;i++){
  out.println(i+"<br/>");
  out.flush();
  Thread.sleep(100);
}
%>服务器是Tomcat 5.5 机器是Win2003 Server
有点奇怪,本地可以用的 到了服务器上就不行了

解决方案 »

  1.   

    看代码没问题啊?前面加上
    <%
    for(int i=0;i<=512;i++){
      out.print(" ");
    }
    out.flush();
    // 加上这些代码看看
      

  2.   

    谢谢,还是不行。
    完整代码如下
    <%@page contentType="text/html;charset=UTF-8"%>
    <%
      for (int i = 0; i <= 512; i++) {
        out.print(" ");
      }
      out.flush();
      // 加上这些代码看看
      for (int i = 1; i <= 1000; i++) {
        out.println(i + "<br/>");
        out.flush();
        Thread.sleep(10);// 我缩短了时间
      }
    %>我本机运行是正常的,可是到服务器上就不行了,内容是一下子出来的,而不是连续的!!奇怪了。大家帮忙啊...
    解决了明天此帖再加100分
      

  3.   

    难道是你的服务器启用了gzip压缩,去看看你的
    tomcat/conf/server.xml 里面是不是启用了 gzip 功能,大致是 compression="on" 这个样子,
    改成 compression="false"
    看看!
      

  4.   

    是这一部分吗?给看一下
    <Connector
      port="80"
      maxHttpHeaderSize="8192"
      maxThreads="50"
      minSpareThreads="20"
      maxSpareThreads="30"
      enableLookups="false"
      redirectPort="443"
      acceptCount="50"
      connectionTimeout="20000"
      disableUploadTimeout="true"
      compression="on"
      compressionMinSize="256"
      noCompressionUserAgents="gozilla, traviata"
      compressableMimeType="text/html,text/xml,application/x-javascript,text/javascript,text/css"
      URIEncoding="UTF-8"
      useBodyEncodingForURI="true" />
      

  5.   

    改成off 看看吧,应该是这个问题。
    这个gzip会将输出内容先进行压缩,然后再发送到浏览器,浏览器内部解压缩后再显示。造成数据发送的不连续。
    一般情况下,这个可以提高网页的传输效率,毕竟压缩了。但遇到这种情况就只能自己选择了。鱼和熊掌不能兼得、
    <Connector
      port="80"
      maxHttpHeaderSize="8192"
      maxThreads="50"
      minSpareThreads="20"
      maxSpareThreads="30"
      enableLookups="false"
      redirectPort="443"
      acceptCount="50"
      connectionTimeout="20000"
      disableUploadTimeout="true"
      compression="off"
      compressionMinSize="256"
      noCompressionUserAgents="gozilla, traviata"
      compressableMimeType="text/html,text/xml,application/x-javascript,text/javascript,text/css"
      URIEncoding="UTF-8"
      useBodyEncodingForURI="true" />
      

  6.   

    谢谢,我刚才已经测试成功了,对了,那个
      for (int i = 0; i <= 512; i++) {
        out.print(" ");
      }
      out.flush();
      // 加上这些代码看看干啥用的,我去掉后好像一开始几个数字显示不正确,是一下子出来的,但后面马上就正常了,什么原因呢?
    麻烦老大再给解释一下
      

  7.   

    我记得servlet有个默认的输出缓冲区,如果你不能达到他的大小,会自动缓冲的,这也是我们有时可以调用
    out.clearBuffer();
    然后
    response.setContentType()
    的原因。这个垃圾代码,就是填充这个缓冲区,让他输出。后面就是我们真正关心的输出了。
    我也不太清楚是否有其它方法不加入这个垃圾代码。