您的位置:首页 > 编程语言 > ASP

Response对象总结

2014-03-22 00:00 387 查看
响应的缓冲输出:为了提高服务器的性能,ASP.NET向浏览器Write的时候默认并不会每Write一次都会立即输出到浏览器,而是会缓存数据,到合适的时机或者响应结束才会将缓冲区中的数据一起发送到浏览器。

Response对象的主要成员:

1. Response.Buffer、Response.BufferOutput:经过Reflector反编译,发现两个属性是一样的。Buffer内部就是调用的BufferOutput。这个属性用来控制是否采用响应缓存,默认是true。

2. Response.Flush() 将缓冲区的数据发送给浏览器。这在需要将Write出来的内容立即输出到浏览器的场合非常适用。案例:大批量数据的导入,显示正在导入第*条数据,用Thread.Sleep模拟耗时。

下面是模拟数据导入:

新建一个名为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() 清空缓冲区中的数据,这样在缓冲区中的没有发送到浏览器端得数据被清空,不会发送到浏览器。

4.Response.ContentEncoding输出流的编码。

5.Response.ContentType 输出流的内容类型,比如是html(text/html) 还是普通文本(text/plain) 还是JPEG图片(image/JPEG)。

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”)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息