Response.Flush的使用心得

[ 2007-05-30 07:19:21 | 作者: admin ]
字号: | |
http://www.cnblogs.com/bluesky521/archive/2006/09/21/ASP20060921XCT.html

 (1)Flush的内容至少要有256字节
  很多时候我们写的asp程序会因为做很多操作,所以会花上一分钟甚至几分钟时间。为了使软件使用者能够耐心的等待程序的执行,我们经常会希望有一个进度条来表示程序执行的状态。或者最起码要显示一个类似: “数据载入中”,“正在保存数据” 等的说明性文字。此时我们就会用到Response.flush()。他会将缓冲区中编译完成的数据先发送到客户端。
  但是有很多时候,我们发现即使我们使用了Response.Flush(),但是并没有将前面的信息发到客户端来显示。呈献给我们的依然是白屏。经过反复的测试,我得出一个结论(仅代表个人观点,可随意引用,但后果自负)。就是flush的内容至少要有256字节。也就是只有编译产生了至少256字节的数据,才能在执行Response.Flush()以后将信息发到客户端并显示。
  以上内容来自http://www.webjx.com/htmldata/2005-10-10/1128898276.html,经本人测试是正确的。以下给出一个示例代码:
    Call TestFlush ''Flush测试
%>
    Function LongSpaceStr() ''制造一个长空字符串
        LongSpaceStr = ""
            For i=1 To 256
                    LongSpaceStr = LongSpaceStr& " "
            Next
    End Function
    ''=================================================
    Sub TestFlush ''Flush测试
            '用LongSpaceStr加长输出内容,以使Flush生效
            Response.Write(LongSpaceStr&"正在执行操作,请等待..."&Now())
            Response.Flush()
            Call DoSomeThing
               
            Response.Write("
操作成功完成!"&Now())
            Response.Flush()
    End Sub
    ''=================================================
%>
  (2)Response.Flush()调用之前不能出现未闭合的HTML标签( ,除外)
    比如,以下代码经测试是不行的:  
  以下代码经测试是可行的: 
  以下代码经测试也是可行的: 
--------没有在ASP.NET下做类似测试,道理应该是一样。---------
--------全文完(夏春涛 xchuntao@163.com)--------
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=915

这篇日志没有评论。

此日志不可发表评论。