首页 > 代码库 > 使用Response.Write实现在页面的生命周期中前后台的交互
使用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。示例代码
使用Response.Write实现在页面的生命周期中前后台的交互
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。