Response对象总结

        响应的缓冲输出:为了提高服务器的性能,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”) 

转载于:https://my.oschina.net/u/164404/blog/210640

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值