• Response.Flush的使用心得


      (1)Flush的内容至少要有256字节
      很多时候我们写的asp程序会因为做很多操作,所以会花上一分钟甚至几分钟时间。为了使软件使用者能够耐心的等待程序的执行,我们经常会希望有一个进度条来表示程序执行的状态。或者最起码要显示一个类似: “数据载入中”,“正在保存数据” 等的说明性文字。此时我们就会用到Response.flush()。他会将缓冲区中编译完成的数据先发送到客户端。
      但是有很多时候,我们发现即使我们使用了Response.Flush(),但是并没有将前面的信息发到客户端来显示。呈献给我们的依然是白屏。经过反复的测试,我得出一个结论(仅代表个人观点,可随意引用,但后果自负)。就是flush的内容至少要有256字节。也就是只有编译产生了至少256字节的数据,才能在执行Response.Flush()以后将信息发到客户端并显示。
      以上内容来自http://www.webjx.com/htmldata/2005-10-10/1128898276.html,经本人测试是正确的。以下给出一个示例代码:
    <html>
    <body>
    <%
      Call TestFlush ''Flush测试
    %>
    </body>
    </html>

    <%
      ''=================================================
      Sub DoSomeThing    ''模拟一个后台操作
          For i=1 To 10000000
                None = i
          Next
      End Sub
      ''=================================================
      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("<br>操作成功完成!"&Now())
          Response.Flush() 
      End Sub
      ''=================================================
    %>
      (2)Response.Flush()调用之前不能出现未闭合的HTML标签(<html> ,<body>除外)
       比如,以下代码经测试是不行的:  
    <html>
    <body>
    <table ID="MyTable"><tr><td>
    <%
      Call TestFlush ''Flush测试
    %>
    </td></tr></table>
    </body>
    </html>
    <%
    ''......略去与上例中同样的代码......
    %>

      以下代码经测试是可行的: 
    <html>
    <body>
    <table ID="MyTable"><tr><td></td></tr></table>
    <%
      Call TestFlush ''Flush测试
    %>
    </body>
    </html>
    <%
    ''......略去与上例中同样的代码......
    %>
      以下代码经测试也是可行的: 
    <html>
    <body>
    <%
      Call TestFlush ''Flush测试
    %>
    <table ID="MyTable"><tr><td></td></tr></table>
    </body>
    </html>
    <%
    ''......略去与上例中同样的代码......
    %>

  • 相关阅读:
    CSS揭秘(六用户体验)
    CSS揭秘(五字体排印)
    CSS揭秘(四视觉效果)
    java split() 使用 . 来分割,转义(“” "|" "*" "+")
    springboot get请求405 Method Not Allowed
    websocket前端消息读取问题
    java解决中文乱码问题(jar包运行时中文返回前端数据或者控制台输出乱码问题)
    解决mysql 允许执行 XA RECOVER语句(atomikos 解决分布式事务报错)
    navicat修改mysql密码
    mybatisplus添加字段填充
  • 原文地址:https://www.cnblogs.com/xiangxiangyuan/p/1322849.html
Copyright © 2020-2023  润新知