zoukankan      html  css  js  c++  java
  • 使用Response.Write实现在页面的生命周期中前后台的交互

      Response.Write()方法非常的常见,也很普通,就是向http output中输出一string。其输出的内容位于页面的最顶端,常用来实现显示一些页面消息框等逻辑。

      一般来说,在页面的整个生命周期过程中通过Response.Write输出的内容都会在最后随页面的文档流输出到Client端。但借助于Response.Flush,便可实现过程中前后台的动态交互。

      Response.Flush方法,强制将缓冲区中的内容输出到Client端,而无需等到生命周期的结束。通过一个例子加深理解,该实例实时的反应后台方法执行的进度。

      每次后台试图update client progress的时候,均会由Response.Write输出一段js脚本,通过js来更新进度值。

    for (int i = 1; i <= 100; i++)
    {
        Thread.Sleep(500);
        setProcessValue(i);
    }
    private void setProcessValue(int percent)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("<script>setProcessBarValue('" + percent + "')</script>");
    
        HttpContext.Current.Response.Write(sb.ToString());
        HttpContext.Current.Response.Flush();
    }

      

      运行代码,会看到progress value是随着方法的执行逐次的向上递增。Response.Flush的调用,保证了每次执行的时候都会及时的将内容输出到Client端。

      去掉代码中所有的Response.Flush,运行代码。结果发生变化,progress value只在页面加载完全后一次性的从0变成了100。示例代码

      

  • 相关阅读:
    python之基础2
    python之文件2
    python之入门2
    python之入门
    python之多并发2
    python之面向对象2
    python之MySQL系列
    python之文件
    python之多并发
    Google身份验证器详解
  • 原文地址:https://www.cnblogs.com/isun/p/4160713.html
Copyright © 2011-2022 走看看