您现在的位置是:网站首页> 编程资料编程资料
ASP.NET中Response.BufferOutput属性的使用技巧_实用技巧_
2023-05-24
373人已围观
简介 ASP.NET中Response.BufferOutput属性的使用技巧_实用技巧_
BufferOutput属性用于获取或设置一个值,该值指示是否缓冲输出并在处理完整个页之后发送它。该属性默认值是true,因此我们通常的页面中的输出内容都是在页面处理完成之后才发送给客户端由浏览器呈现出来。如果页面要处理的内容很多,可能很长时间才能看到页面上的内容。这个时候有两种方法可以让信息逐步显示,这样就能知道当前程序运行到哪一步了。
方法1:BufferOutput默认值为true,这个时候可以借助Flush方法和Clear方法将当前缓冲区的信息输出。这个方法比较通用,当你的页面在处理一个复杂的程序的时候,可以即时输出一些提示信息。
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ShowInfo("中", 100); Response.Flush(); Response.Clear(); Thread.Sleep(1000); ShowInfo("国", 5); Response.Flush(); Response.Clear(); Thread.Sleep(1000); } } private void ShowInfo(string it, int count) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < count; i++) { sb.Append(it); } sb.Append("
"); Response.Write(sb.ToString()); }方法2:把BufferOutput值设为false,这个时候缓冲区的内容会立即发送给客户端显示。这种方法有性能问题,因为没有使用缓冲输出,不过代码简洁一些。
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Response.BufferOutput = false; ShowInfo("中", 100); Thread.Sleep(1000); ShowInfo("国", 5); Thread.Sleep(1000); } } private void ShowInfo(string it, int count) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < count; i++) { sb.Append(it); } sb.Append("
"); Response.Write(sb.ToString()); }在使用的时候有两个问题需要注意:
一是IE浏览器在缓冲区数据不少于256字节的情况下才会输出到客户端,经测试FF浏览器没有这个问题。
二是UFT8编码的汉字一般占三个字节(Unicode编码是两个字节),这里第一次输出100个汉字是为了保证至少有256个字节的数据。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- .NET使用System.Timers.Timer类实现程序定时执行_实用技巧_
- 详解.NET主流的几款重量级 ORM框架_实用技巧_
- ASP.NET轻量级MVC框架Nancy的基本用法_实用技巧_
- ASP.NET Core通用主机实现托管服务_实用技巧_
- ASP.NET Core通用主机的系统配置_实用技巧_
- .Net ORM 访问 Firebird 数据库的方法_实用技巧_
- ASP.NET Core中的对象池介绍_实用技巧_
- ASP.NET Core的日志系统介绍_实用技巧_
- 在.Net Framework应用中请求HTTP2站点的问题解析_实用技巧_
- ASP.NET Core配置设置之Configuration包_实用技巧_
