响应的缓冲输出:为了提升服务器的性能,ASP.NET向浏览器Write的时候默认并不会每Write一次都会当即输出到浏览器,而是会缓存数据,到合适的时机或者响应结束才会将缓冲区中的数据一块儿发送到浏览器。html
Response对象的主要成员:浏览器
1. Response.Buffer、Response.BufferOutput:通过Reflector反编译,发现两个属性是同样的。Buffer内部就是调用的BufferOutput。这个属性用来控制是否采用响应缓存,默认是true。缓存
2. Response.Flush() 将缓冲区的数据发送给浏览器。这在须要将Write出来的内容当即输出到浏览器的场合很是适用。案例:大批量数据的导入,显示正在导入第*条数据,用Thread.Sleep模拟耗时。服务器
下面是模拟数据导入:cookie
新建一个名为Setup.ashx 文件性能
using System; using System.Web; public class Setup : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/html"; for (int i = 0; i < 20; i++) { System.Threading.Thread.Sleep(500); context.Response.Write("第"+i+"步执行完成<BR/>"); context.Response.Flush();//当即将缓存发给浏览器 } } public bool IsReusable { get { return false; } } }
执行结果:编码
3.Response.Clear() 清空缓冲区中的数据,这样在缓冲区中的没有发送到浏览器端得数据被清空,不会发送到浏览器。url
4.Response.ContentEncoding输出流的编码。 code
5.Response.ContentType 输出流的内容类型,好比是html(text/html) 仍是普通文本(text/plain) 仍是JPEG图片(image/JPEG)。htm
6.Response.Cookies 返回浏览器的Cookie的集合,能够经过它设置Cookie。
7.Response.OutputStream 输出流,在输出图片、Excel 文件等非文本内容的时候要使用它。
8.Response.End() 终止响应,将以前缓存中的数据发给浏览器,End()以后的代码不会被继续执行,在终止一些非法请求的时候,好比盗链等能够用End()当即终止请求。
9.Response.Redirect(url) :重定向浏览器到新的网址,便可以重定向到站外网址也能够重定向到站内网址。如Response.Redirect(“http://www.baidu.com”)。
10.Response.SetCookie(HttpCookie cookie) ,想输出流中更新写到浏览器中的Cookie。若是Cookie存在就更新,不存在就增长,是对Response.Cookies的简化调用。
11.Response.WriteFile(filename) 向浏览器输出文件。好比Respon.WriteFile(“c:/test.txt”)