码迷,mamicode.com
首页 > 其他好文 > 详细

使用Response.Write实现在页面的生命周期中前后台的交互

时间:2014-12-13 00:42:50      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

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

 

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

 

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

bubuko.com,布布扣

  每次后台试图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。示例代码

 

 

  

使用Response.Write实现在页面的生命周期中前后台的交互

标签:style   blog   http   io   ar   color   os   使用   sp   

原文地址:http://www.cnblogs.com/isun/p/4160713.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!