使用Response.Write实现在页面的生命周期中前后台的交互_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 使用Response.Write实现在页面的生命周期中前后台的交互

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

 2014/12/13 2:56:01  iSun  程序员俱乐部  我要评论(0)
  • 摘要:Response.Write()方法非常的常见,也很普通,就是向httpoutput中输出一string。其输出的内容位于页面的最顶端,常用来实现显示一些页面消息框等逻辑。一般来说,在页面的整个生命周期过程中通过Response.Write输出的内容都会在最后随页面的文档流输出到Client端。但借助于Response.Flush,便可实现过程中前后台的动态交互。Response.Flush方法,强制将缓冲区中的内容输出到Client端,而无需等到生命周期的结束。通过一个例子加深理解
  • 标签:实现 使用

  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。示例代码

 

 

  

发表评论
用户名: 匿名