我有个页面是需要将输出的信息按每秒显示出来的,这个我是通过iframe+window.setInterval(js)实现了,但是我输出的信息总是全部读出来,然后再一起显示出来,让我很头疼,我以为是页面缓存了的原因,所以我设置了HTML代码为:
<meta http-equiv='Pragma' content='no-cache' />
<meta http-equiv='Cache-Control' content='no-cache' />
<meta http-equiv='Expires' content='0' />
还是不行,我又在cs中设置:
        Server.ScriptTimeout = 9000;//程序执行时间
        //Response.BufferOutput = false;
        Response.Buffer = true;
        Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
        Response.Expires = 0;
        Response.CacheControl = "no-cache";
还是不行,我不知道是哪里设置错了.
我测试显示效果的代码很简单:
            StringBuilder _outputstr = new StringBuilder();//输出字符串存储变量
            int i = 0;
            for (; i < 100; i++) 
            {
            System.Threading.Thread.Sleep(200);
                _outputstr.Append(lineStart(1) +"测试项:"+ i.ToString() + lineEnd(1));//lineStart和lineEnd是我套在每行的模板代码
            }
就这么点内容,会等到20秒以后才一次性调出来一次性显示,这就有违我每秒显示一部分内容出来的初衷了.请各位大虾支招

解决方案 »

  1.   

    //强制浏览器重新访问服务器下载页面,而不是从缓存读取页面
    Response.Buffer = True ;
    Response.Expires = -1;
    Response.ExpiresAbsolute = Now() - 1 ;
    Response.Expires = 0 ;
    Response.CacheControl = "no-cache" ;
      

  2.   

    我想要实现的是不缓存直接一点点输出来 有一点就直接显示成html
      

  3.   

    用线程的方法,不能实现。。试试AJAX或计时器吧
      

  4.   

    每次请求都用不同的参数就可以了。例如你的页面时
    a.aspx?xxx=aa&xx=bbbb你可以每次请求地址是:'a.aspx?xxx=aa&xx=bbbb&'+Math.random()
      

  5.   

    问题已经解决 感谢大家参与,问题没有出在缓存上,是我输出的时候采用了统一输出,也就是全部存入了_outputstr这个里面的原因,所以必定会全部编译为网页后再输出,改成response.write后就没有问题了,多谢大家参与.